add "allstatus" command
authorChristian Weiske <cweiske@cweiske.de>
Wed, 15 Dec 2010 18:13:00 +0000 (19:13 +0100)
committerChristian Weiske <cweiske@cweiske.de>
Wed, 15 Dec 2010 18:13:00 +0000 (19:13 +0100)
Wrt3g.php
scripts/linksys-wrt3g.php

index a14adf5e5619adea5a995d70ba9af3c405fcdd34..18e8608ebd5205336459bf49af77ab8947495439 100644 (file)
--- 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.
      *
index f47502523af8deb09809ed58a9f456892be33802..7d87cd1decf30104be0ec3728cc7745c71b0bd39 100755 (executable)
@@ -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";