diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2010-12-16 19:10:15 +0100 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2010-12-16 19:10:15 +0100 |
| commit | 3127f7c70315c3a5db3f4442fbf0d2da05ab8a40 (patch) | |
| tree | 7f107fdf26f64f16fc41fa11f39d11d381b898a0 | |
| parent | cd83f80d486588f4c97cf389a26e7f7452d554c0 (diff) | |
| download | linksys-wrt3g-tools-3127f7c70315c3a5db3f4442fbf0d2da05ab8a40.tar.gz linksys-wrt3g-tools-3127f7c70315c3a5db3f4442fbf0d2da05ab8a40.zip | |
check http response codes
| -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 |
