move status_noauth loading into separate function since we need it several times
[linksys-wrt3g-tools.git] / Wrt3g.php
index a14adf5e5619adea5a995d70ba9af3c405fcdd34..150b68c741877df41ccc390d9d119b25c21e43ba 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,23 +148,21 @@ class Wrt3g
         $arRetval = array_merge($arRetval, $parser->index_wstatus1($body));
 
         return $arRetval;
-    }//public function getStatus()
+    }//public function getConnectionStatus()
 
 
 
     /**
-     * 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->getAuthBaseUrl();
+        $strUrlBase = $this->getAnonBaseUrl();
 
         $url = $strUrlBase . '/Status_NoAuth.asp';
         $this->log('Connecting to ' . $url, 1);
@@ -177,7 +175,25 @@ class Wrt3g
         //FIXME: check status
 
         $parser = new Wrt3g_HtmlParser();
-        $arRetval = $parser->status_noauth($resp->getBody());
+
+        return $parser->status_noauth(
+            $this->loadStatus_NoAuth()->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,
@@ -192,6 +208,21 @@ 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()
+    {
+        return $this->loadStatus_NoAuth();
+    }
+
+
+
     /**
      * Log a message to stdout.
      *