X-Git-Url: https://git.cweiske.de/linksys-wrt3g-tools.git/blobdiff_plain/0590cb4eefa73e311e2654cbf3e3b460be174cd3..cd83f80d486588f4c97cf389a26e7f7452d554c0:/Wrt3g.php diff --git a/Wrt3g.php b/Wrt3g.php index 18e8608..c71ae19 100644 --- a/Wrt3g.php +++ b/Wrt3g.php @@ -56,6 +56,14 @@ class Wrt3g */ public $verbosity = 0; + /** + * Class to send HTTP Requests with. + * Needs to be compatible with HTTP_Request2 + * + * @var string + */ + public $requestClass = 'HTTP_Request2'; + /** @@ -99,7 +107,7 @@ class Wrt3g $url = $this->getAuthBaseUrl() . '/apply.cgi'; $this->log('Connecting to ' . $url); - $r = new HTTP_Request2(); + $r = new $this->requestClass(); $r->setMethod(HTTP_Request2::METHOD_POST); $r->setUrl($url); $r->addPostParameter('action', 'Reboot'); @@ -130,7 +138,7 @@ class Wrt3g /** * Connection status */ - $r = new HTTP_Request2(); + $r = new $this->requestClass(); $r->setMethod(HTTP_Request2::METHOD_GET); $r->setUrl($strUrlBase . '/index_wstatus2.asp'); $this->log('Connecting to ' . $strUrlBase . '/index_wstatus2.asp', 1); @@ -153,23 +161,21 @@ class Wrt3g /** - * Retrieves pc card/SIM status information + * Loads "Status_NoAuth.asp" page and parses the body. * - * @return array Array with several key-value pairs - * connection => connecting, disconnected, connected + * @return array Associative array with connection status. * - * @throws Exception When the router can't be reached + * @throws Exception When something goes wrong, i.e. router not + * reachable */ - public function getCardStatus() + protected function loadStatus_NoAuth() { - $arRetval = array(); - $strUrlBase = $this->getAnonBaseUrl(); $url = $strUrlBase . '/Status_NoAuth.asp'; $this->log('Connecting to ' . $url, 1); - $r = new HTTP_Request2(); + $r = new $this->requestClass(); $r->setMethod(HTTP_Request2::METHOD_GET); $r->setUrl($url); $resp = $r->send(); @@ -177,7 +183,25 @@ class Wrt3g //FIXME: check status $parser = new Wrt3g_HtmlParser(); - $arRetval = $parser->status_noauth($resp->getBody()); + + return $parser->status_noauth( + $resp->getBody() + ); + } + + + + /** + * Retrieves pc card/SIM status information + * + * @return array Array with several key-value pairs + * connection => connecting, disconnected, connected + * + * @throws Exception When the router can't be reached + */ + public function getCardStatus() + { + $arRetval = $this->loadStatus_NoAuth(); return array_intersect_key( $arRetval, @@ -202,22 +226,7 @@ class Wrt3g */ public function getFullStatus() { - $arRetval = array(); - - $strUrlBase = $this->getAnonBaseUrl(); - - $url = $strUrlBase . '/Status_NoAuth.asp'; - $this->log('Connecting to ' . $url, 1); - - $r = new HTTP_Request2(); - $r->setMethod(HTTP_Request2::METHOD_GET); - $r->setUrl($url); - $resp = $r->send(); - $this->log($resp->getStatus() . ' ' . $resp->getReasonPhrase(), 1); - //FIXME: check status - - $parser = new Wrt3g_HtmlParser(); - return $parser->status_noauth($resp->getBody()); + return $this->loadStatus_NoAuth(); }