$r->addPostParameter('wait_time', 1);
$resp = $r->send();
+ $this->checkResponseStatus($resp);
return $resp;
}//public function reboot()
$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());
/**
$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));
$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();
+ /**
+ * 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
*