From: Mike Taylor Date: Wed, 6 Dec 2006 12:58:06 +0000 (+0000) Subject: Check for the init_opt_* options from the Init response, and note the X-Git-Tag: CPAN-v1.02~704 X-Git-Url: http://lists.indexdata.com/cgi-bin?a=commitdiff_plain;h=68baae39f76d2a37e3ade10aa37d974f93653567;p=irspy-moved-to-github.git Check for the init_opt_* options from the Init response, and note the results in init_opt elements. This requires that the connected() callback fires on RECV_APDU rather than CONNECT as previously, otherwise we are called before the APDU's arrived and therefore before the options have been set. I think this is fine, as the Init APDU is the only one that arrives during the task. --- diff --git a/lib/ZOOM/IRSpy/Test/Ping.pm b/lib/ZOOM/IRSpy/Test/Ping.pm index 3b88e34..8fdfea8 100644 --- a/lib/ZOOM/IRSpy/Test/Ping.pm +++ b/lib/ZOOM/IRSpy/Test/Ping.pm @@ -1,4 +1,4 @@ -# $Id: Ping.pm,v 1.16 2006-11-29 18:18:37 mike Exp $ +# $Id: Ping.pm,v 1.17 2006-12-06 12:58:06 mike Exp $ # See the "Main" test package for documentation @@ -19,7 +19,7 @@ sub start { my($conn) = @_; $conn->irspy_connect(undef, {}, - ZOOM::Event::CONNECT, \&connected, + ZOOM::Event::RECV_APDU, \&connected, exception => \¬_connected); } @@ -34,6 +34,21 @@ sub maybe_connected { my $rec = $conn->record(); $rec->append_entry("irspy:status", "" . isodate(time()) . ""); + + if ($ok) { + foreach my $opt (qw(search present delSet resourceReport + triggerResourceCtrl resourceCtrl + accessCtrl scan sort extendedServices + level_1Segmentation level_2Segmentation + concurrentOperations namedResultSets + encapsulation resultCount negotiationModel + duplicationDetection queryType104 + pQESCorrection stringSchema)) { + $conn->record()->store_result('init_opt', option => $opt) + if $conn->option("init_opt_$opt"); + } + } + return $ok ? ZOOM::IRSpy::Status::TEST_GOOD : ZOOM::IRSpy::Status::TEST_BAD; }