diff options
Diffstat (limited to 'Wrt3g.php')
| -rw-r--r-- | Wrt3g.php | 33 |
1 files changed, 30 insertions, 3 deletions
@@ -115,6 +115,7 @@ class Wrt3g $r->addPostParameter('wait_time', 1); $resp = $r->send(); + $this->checkResponseStatus($resp); return $resp; }//public function reboot() @@ -143,7 +144,7 @@ class Wrt3g $r->setUrl($strUrlBase . '/index_wstatus2.asp'); $this->log('Connecting to ' . $strUrlBase . '/index_wstatus2.asp', 1); $resp = $r->send(); - $this->log($resp->getStatus() . ' ' . $resp->getReasonPhrase(), 1); + $this->checkResponseStatus($resp); $arRetval = $parser->index_wstatus2($resp->getBody()); /** @@ -152,6 +153,7 @@ class Wrt3g $r->setUrl($strUrlBase . '/index_wstatus1.asp'); $this->log('Connecting to ' . $strUrlBase . '/index_wstatus1.asp', 1); $resp = $r->send(); + $this->checkResponseStatus($resp); $body = $resp->getBody(); $arRetval = array_merge($arRetval, $parser->index_wstatus1($body)); @@ -179,8 +181,7 @@ class Wrt3g $r->setMethod(HTTP_Request2::METHOD_GET); $r->setUrl($url); $resp = $r->send(); - $this->log($resp->getStatus() . ' ' . $resp->getReasonPhrase(), 1); - //FIXME: check status + $this->checkResponseStatus($resp); $parser = new Wrt3g_HtmlParser(); @@ -192,6 +193,32 @@ class Wrt3g /** + * Checks the HTTP response code and throws an exception if it + * is not in the 200 range. + * + * @param HTTP_Request2_Response $resp HTTP response object + * + * @return void + * + * @throws Exception When the status is not 200-299 + */ + protected function checkResponseStatus(HTTP_Request2_Response $resp) + { + $nStatus = $resp->getStatus(); + $this->log($nStatus . ' ' . $resp->getReasonPhrase(), 1); + if (intval($nStatus / 100) == 2) { + //2xx status is fine + return; + } + + throw new Exception( + 'HTTP Error: ' . $nStatus . ' ' . $resp->getReasonPhrase() + ); + } + + + + /** * Retrieves pc card/SIM status information * * @return array Array with several key-value pairs |
