Here’s a patch:
# diff -u multi_http_responsetime.orig multi_http_responsetime
--- multi_http_responsetime.orig 2010-02-01 10:13:22.000000000 +0100
+++ multi_http_responsetime 2010-02-01 10:30:23.000000000 +0100
@@ -16,6 +16,9 @@
use Time::HiRes qw( time );
use IO::Socket;
+$FAILED=0;
+$INFINITE=999999;
+
# ----- config -----
push(@url_array, "http://www.google.de");
push(@url_array, "http://www.t-online.de");
@@ -34,7 +37,7 @@
PeerPort => 80,
Proto => 'tcp'
);
- return(0) unless ($sock);
+ return($FAILED) unless ($sock);
print $sock "GET $baseurl HTTP/1.1\nHost: $vhost\nConnection: close\n\n";
while (<$sock>) {
$data .= $_;
@@ -63,11 +66,16 @@
$baseurl =~ s@^\w+://.+?(/)@\1@;
$tick1 = time();
- geturl;
+ $retval = geturl;
$tick2 = time();
- $tspent = $tick2-$tick1;
- $msecs = ($tspent * 1000);
+ if ($retval == $FAILED) {
+ $msecs = $INFINITE;
+ }
+ else {
+ $tspent = $tick2-$tick1;
+ $msecs = ($tspent * 1000);
+ }
printf "timespent$i.value %.3f\n", $msecs;
}