summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Schneider2019-10-17 16:46:36 +0200
committerChristian Schneider2019-10-17 16:48:16 +0200
commit55597357c715484494bc7ef58ee36a6d0e5b63f6 (patch)
tree3785884562f9cb33c56b37144e7e555dc76bc0c2
parent9f948f44cdc55b9cac093eb14b0e453901953075 (diff)
downloaditools-55597357c715484494bc7ef58ee36a6d0e5b63f6.tar.gz
itools-55597357c715484494bc7ef58ee36a6d0e5b63f6.tar.bz2
itools-55597357c715484494bc7ef58ee36a6d0e5b63f6.zip
Fix ->is_reachable to use get() instead of fopen to use HTTP/1.1 and add tests
-rw-r--r--it_url.class15
-rwxr-xr-xtest/it_url.t5
2 files changed, 8 insertions, 12 deletions
diff --git a/it_url.class b/it_url.class
index d03ad07..c8fb796 100644
--- a/it_url.class
+++ b/it_url.class
@@ -71,19 +71,10 @@ function __construct($url = null)
*/
function is_reachable($timeout = 5)
{
- $result = false;
-
- if ($fp = @fsockopen($this->realhostname, $this->port, $dummy_errno, $dummy_errstr, $timeout))
- {
- fputs($fp, "GET /$this->path HTTP/1.0\r\nHost: $this->realhostname\r\nUser-Agent: ITools\r\n\r\n");
- $line = fgets($fp, 128);
- fclose($fp);
+ $url = new it_url($this->url);
+ @$url->get(['method' => 'HEAD', 'totaltimeout' => $timeout]);
- #debug("it_url::is_reachable($this->rawurl: $line");
- $result = preg_match("#^$this->protocol/[^ ]+ +[23]#i", $line);
- }
-
- return $result;
+ return $url->result >= 200 && $url->result < 400;
}
/**
diff --git a/test/it_url.t b/test/it_url.t
index 624b4bf..b265afa 100755
--- a/test/it_url.t
+++ b/test/it_url.t
@@ -118,13 +118,18 @@ is(
$url = new it_url('http://www.gna.ch/');
+is((bool)$url->is_reachable(), true, "is_reachable($url->url)");
$page = $url->get();
ok(
strpos($page, '</html>'), # UTF8SAFE
'$url->get with url in constructor'
);
+$url = new it_url('http://www.search.ch/not_found');
+is((bool)$url->is_reachable(), false, "is_reachable($url->url)");
+
$url = new it_url('http://bogus.url');
+is((bool)$url->is_reachable(), false, "is_reachable($url->url)");
$page = $url->get('http://www.gna.ch/');
ok(
strpos($page, '</html>'), # UTF8SAFE