From 0590cb4eefa73e311e2654cbf3e3b460be174cd3 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Wed, 15 Dec 2010 19:13:00 +0100 Subject: [PATCH] add "allstatus" command --- Wrt3g.php | 36 +++++++++++++++++++++++++++++++++--- scripts/linksys-wrt3g.php | 16 +++++++++++++--- 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/Wrt3g.php b/Wrt3g.php index a14adf5..18e8608 100644 --- a/Wrt3g.php +++ b/Wrt3g.php @@ -120,7 +120,7 @@ class Wrt3g * * @throws Exception When the router can't be reached, or unauthorized */ - public function getStatus() + public function getConnectionStatus() { $arRetval = array(); @@ -148,7 +148,7 @@ class Wrt3g $arRetval = array_merge($arRetval, $parser->index_wstatus1($body)); return $arRetval; - }//public function getStatus() + }//public function getConnectionStatus() @@ -164,7 +164,7 @@ class Wrt3g { $arRetval = array(); - $strUrlBase = $this->getAuthBaseUrl(); + $strUrlBase = $this->getAnonBaseUrl(); $url = $strUrlBase . '/Status_NoAuth.asp'; $this->log('Connecting to ' . $url, 1); @@ -192,6 +192,36 @@ class Wrt3g + /** + * Retrieves all status information one can get. + * + * @return array Array with several key-value pairs + * connection => connecting, disconnected, connected + * + * @throws Exception When the router can't be reached + */ + 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()); + } + + + /** * Log a message to stdout. * diff --git a/scripts/linksys-wrt3g.php b/scripts/linksys-wrt3g.php index f475025..7d87cd1 100755 --- a/scripts/linksys-wrt3g.php +++ b/scripts/linksys-wrt3g.php @@ -76,7 +76,7 @@ $stCmd = $parser->addCommand( 'status', array( 'aliases' => array('s', 'st'), - 'description' => 'Show the router status' + 'description' => 'Show the connection status' ) ); $stCmd = $parser->addCommand( @@ -86,6 +86,13 @@ $stCmd = $parser->addCommand( 'description' => 'Show the card/SIM status' ) ); +$stCmd = $parser->addCommand( + 'allstatus', + array( + 'aliases' => array('a', 'as'), + 'description' => 'Show all status details' + ) +); $parser->addCommand( @@ -121,13 +128,16 @@ try { } break; + case 'allstatus': case 'cardstatus': case 'status': default: - if ($result->command_name == 'cardstatus') { + if ($result->command_name == 'allstatus') { + $arStatus = $router->getFullStatus(); + } else if ($result->command_name == 'cardstatus') { $arStatus = $router->getCardStatus(); } else { - $arStatus = $router->getStatus(); + $arStatus = $router->getConnectionStatus(); } foreach ($arStatus as $key => $value) { echo $key . ': ' . $value . "\n"; -- 2.30.2