X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy.pm;fp=lib%2FZOOM%2FIRSpy.pm;h=4e2040c2ecec809495ad2e9a4f2cc4361f90e66a;hp=bfd593ca5ec497d45bbacc49696db9b0c446595f;hb=16ed8057d606960239c413e0430c3d6abb5d48d7;hpb=f235dd11944d33e51c66b0fd30afc9582e292825 diff --git a/lib/ZOOM/IRSpy.pm b/lib/ZOOM/IRSpy.pm index bfd593c..4e2040c 100644 --- a/lib/ZOOM/IRSpy.pm +++ b/lib/ZOOM/IRSpy.pm @@ -448,6 +448,7 @@ sub check { my $conn = $copy_conn[$i0]; #print "connection $i0 of $nconn/", scalar(@conn), " is $conn\n"; next if !defined $conn; + if (!$conn->current_task()) { if (!$conn->next_task()) { # Out of tasks: we need a new test @@ -460,11 +461,13 @@ 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 (ZOOM::IRSpy::Test::zoom_error_timeout_check($conn)) { + $conn->log("irspy", "Got to many timeouts, stop testing"); + undef $nextaddr; + } + if (!defined $nextaddr) { $conn->log("irspy", "has no more tests: removing"); $this->_rewrite_irspy_record($conn); @@ -506,6 +509,13 @@ sub check { my $task = $conn->next_task(); die "no next task queued for $conn" if !defined $task; + + # do not run the next task if we got too many timeouts + if (ZOOM::IRSpy::Test::zoom_error_timeout_check($conn)) { + $conn->log("irspy_task", "Got to many timeouts for this target, do not start a new task"); + next; + } + $conn->log("irspy_task", "preparing task $task"); $conn->next_task(0); $conn->current_task($task);