X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy.pm;h=da29f02d8328049b7b76b429b35e583ca195fe66;hb=ee9ceea7a8aee9f94073c1c5da57881e75253c87;hp=0df24d7e18ac8b4bbd246db07bdc9fa709a7413d;hpb=b5e602a6562b02ae4beb578a2a630aa33104cfea;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy.pm b/lib/ZOOM/IRSpy.pm index 0df24d7..da29f02 100644 --- a/lib/ZOOM/IRSpy.pm +++ b/lib/ZOOM/IRSpy.pm @@ -1,4 +1,4 @@ -# $Id: IRSpy.pm,v 1.75 2007-03-09 08:56:37 mike Exp $ +# $Id: IRSpy.pm,v 1.77 2007-03-15 11:36:58 mike Exp $ package ZOOM::IRSpy; @@ -234,7 +234,7 @@ sub _rewrite_record { # Since IRSpy can run for a long time between writes back to the # database, it's quite possible for the server to have closed the # connection as idle. So re-establish it if necessary. - $conn->connect($conn->option("host")); + $this->{conn}->connect($conn->option("host")); _really_rewrite_record($this->{conn}, $rec); $conn->log("irspy", "rewrote XML record"); @@ -330,10 +330,11 @@ sub check { $conn->log("irspy", "has no more tests: removing"); $this->_rewrite_record($conn); $conn->option(rewrote_record => 1); - $conn->destroy(); if (@{ $this->{queue} } == 0) { + # Do not destroy: we need this for later sanity checks splice @conn, $i0, 1; } else { + $conn->destroy(); $conn[$i0] = create ZOOM::IRSpy::Connection($this, shift @{ $this->{queue} }, async => 1); @@ -468,9 +469,10 @@ sub check { } $this->log("irspy", "exiting main loop"); + # Sanity checks: none of the following should ever happen my $finished = 1; - @conn = @{ $this->{connections} }; + $this->log("irspy", "performing end-of-run sanity-checks"); foreach my $conn (@conn) { my $test = $conn->option("current_test_address"); my $next = $this->_next_test($test);