X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=lib%2FZOOM%2FIRSpy.pm;h=dcba350a97297ed88899c9cdb0df94ac9b247b24;hb=abe5314c266ab3e7ff54d9c9b7ca51f8eb6ae6e0;hp=81fa91171341b81401ddc99077b96a75eee31987;hpb=922431d5c98a82b37bba080d09ecde4fcbc0202e;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy.pm b/lib/ZOOM/IRSpy.pm index 81fa911..dcba350 100644 --- a/lib/ZOOM/IRSpy.pm +++ b/lib/ZOOM/IRSpy.pm @@ -1,4 +1,3 @@ -# $Id: IRSpy.pm,v 1.90 2008-07-16 11:42:13 mike Exp $ package ZOOM::IRSpy; @@ -26,6 +25,7 @@ our $VERSION = '1.02'; our $irspy_to_zeerex_xsl = dirname(__FILE__) . '/../../xsl/irspy2zeerex.xsl'; our $debug = 0; our $xslt_max_depth = 250; +our $max_timeout_errors = 3; # Enumeration for callback functions to return @@ -435,6 +435,8 @@ sub check { my $timeout = $this->{timeout}; $this->log("irspy", "beginnning with test '$topname' (timeout $timeout)"); + $timeout = 2; + my $nskipped = 0; my @conn = @{ $this->{connections} }; @@ -443,8 +445,12 @@ sub check { while (1) { my @copy_conn = @conn; # avoid alias problems after splice() my $nconn = scalar(@copy_conn); + + foreach my $i0 (0 .. $#copy_conn) { my $conn = $copy_conn[$i0]; + #warn Dumper($conn); + #print "connection $i0 of $nconn/", scalar(@conn), " is $conn\n"; next if !defined $conn; if (!$conn->current_task()) { @@ -459,6 +465,10 @@ sub check { $conn->log("irspy_test", "checking for next test after '$address'"); $nextaddr = $this->_next_test($address); + if ($nextaddr && $conn->record->zoom_error->{TIMEOUT} >= $max_timeout_errors) { + $conn->log("irspy", "Got to many timeouts, stop testing: " . $conn->record->zoom_error->{TIMEOUT}); + $nextaddr = ""; + } } if (!defined $nextaddr) { $conn->log("irspy", "has no more tests: removing");