ignore releases dir
[linksys-wrt3g-tools.git] / Wrt3g.php
index ee48eca8437c4db7c73773ca767b6c3896eff902..07a68216de4fa3bbb47701302d76cf6520a6dca1 100644 (file)
--- a/Wrt3g.php
+++ b/Wrt3g.php
@@ -11,6 +11,7 @@
  * @link     http://cweiske.de/linksys-wrt3g-tools.htm
  */
 require_once 'HTTP/Request2.php';
+require_once 'Wrt3g/Config.php';
 require_once 'Wrt3g/HtmlParser.php';
 require_once 'Wrt3g/RequestObserver.php';
 
@@ -25,27 +26,6 @@ require_once 'Wrt3g/RequestObserver.php';
  */
 class Wrt3g
 {
-    /**
-     * Router hostname/IP
-     *
-     * @var string
-     */
-    public $host;
-
-    /**
-     * Name of user with administration privileges
-     *
-     * @var string
-     */
-    public $user;
-
-    /**
-     * Password for $user
-     *
-     * @var string
-     */
-    public $password;
-
     /**
      * Logging verbosity
      * 0 - no debug logging
@@ -65,6 +45,30 @@ class Wrt3g
      */
     public $requestClass = 'HTTP_Request2';
 
+    /**
+     * Configuration object
+     *
+     * @var Wrt3g_Config
+     */
+    public $config;
+
+
+
+    /**
+     * Loads the configuration from file and cmdline options
+     *
+     * @param array $options Command line options array
+     *
+     * @return void
+     *
+     * @see Wrt3g_Config
+     */
+    public function loadConfig($options = array())
+    {
+        $this->config = new Wrt3g_Config($this);
+        $this->config->load($options);
+    }
+
 
 
     /**
@@ -76,9 +80,9 @@ class Wrt3g
     protected function getAuthBaseUrl()
     {
         return 'http://'
-            . $this->user
-            . ':' . $this->password
-            . '@' . $this->host;
+            . $this->config->user
+            . ':' . $this->config->password
+            . '@' . $this->config->host;
     }
 
 
@@ -91,7 +95,7 @@ class Wrt3g
      */
     protected function getAnonBaseUrl()
     {
-        return 'http://' . $this->host;
+        return 'http://' . $this->config->host;
     }
 
 
@@ -141,14 +145,40 @@ class Wrt3g
 
 
     /**
-     * Retrieves status information about the router
+     * Retrieves basic connection status information about the router
      *
      * @return array Array with several key-value pairs
      *               connection => connecting, disconnected, connected
      *
-     * @throws Exception When the router can't be reached, or unauthorized
+     * @throws Exception When the router can't be reached
      */
     public function getConnectionStatus()
+    {
+        return array_intersect_key(
+            $this->loadStatus_NoAuth(),
+            array(
+                'connection'      => 0,
+                'type'            => 0,
+                'network'         => 0,
+                'signal strength' => 0,
+                'connection time' => 0,
+                'session usage'   => 0
+            )
+        );
+    }
+
+
+
+    /**
+     * Retrieves connection status information about the router.
+     * Uses pages that can only be reached with authentication.
+     *
+     * @return array Array with several key-value pairs
+     *               connection => connecting, disconnected, connected
+     *
+     * @throws Exception When the router can't be reached, or unauthorized
+     */
+    public function getConnectionStatusAuth()
     {
         $arRetval = array();
 
@@ -280,9 +310,9 @@ class Wrt3g
     /**
      * Log a message to stdout.
      *
-     * @param string|object  $msg   Message to display. May even be a response
-     *                              object
-     * @param integer        $level Log level, see $verbosity
+     * @param string|object $msg   Message to display. May even be a response
+     *                             object
+     * @param integer       $level Log level, see $verbosity
      *
      * @return void
      */