X-Git-Url: https://git.cweiske.de/linksys-wrt3g-tools.git/blobdiff_plain/ec85023a1006f6f2fe3ea947b6be81bb4515aa8a..d5acd59f15dd093735036899d8e5fc0e62777398:/Wrt3g.php diff --git a/Wrt3g.php b/Wrt3g.php index d3b9488..07a6821 100644 --- 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(); @@ -223,8 +253,6 @@ class Wrt3g */ protected function checkResponseStatus(HTTP_Request2_Response $resp) { - $this->log($resp, 3); - $nStatus = $resp->getStatus(); $this->log($nStatus . ' ' . $resp->getReasonPhrase(), 1); if (intval($nStatus / 100) == 2) { @@ -282,23 +310,15 @@ 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 */ public function log($msg, $level = 1) { if ($this->verbosity >= $level) { - if ($msg instanceof HTTP_Request2_Response) { - echo "HTTP Response:\n"; - echo $msg->getStatus() . ' ' . $msg->getReasonPhrase() . "\n"; - echo 'Header: '; - var_export($msg->getHeader()); - echo $msg->getBody() . "\n----\n"; - return; - } echo $msg . "\n"; } }