X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FConnection.pm;h=61aa85649853feca8095b1f990fda5d750425cdd;hp=bd44b12aeb09de10cfb6f23095f8a30c4f9b85a7;hb=7b1ce08d86449fb47f358ef2169e54fe78772f23;hpb=d8931f76879e7d7b5d0cb8340291b7d2dac65c91 diff --git a/lib/ZOOM/IRSpy/Connection.pm b/lib/ZOOM/IRSpy/Connection.pm index bd44b12..61aa856 100644 --- a/lib/ZOOM/IRSpy/Connection.pm +++ b/lib/ZOOM/IRSpy/Connection.pm @@ -1,4 +1,4 @@ -# $Id: Connection.pm,v 1.12 2007-04-27 14:04:40 mike Exp $ +# $Id: Connection.pm,v 1.19 2007-12-18 11:59:42 mike Exp $ package ZOOM::IRSpy::Connection; @@ -38,21 +38,30 @@ the connection. sub create { my $class = shift(); my $irspy = shift(); - my $target = shift(); + my $id = shift(); my $this = $class->SUPER::create(@_); - $this->option(host => irspy_identifier2target($target)); + my $target = irspy_identifier2target($id); + $this->option(host => $target); $this->{irspy} = $irspy; $this->{tasks} = []; - my $query = cql_target($target); - my $rs = $irspy->{conn}->search(new ZOOM::Query::CQL($query)); + my $query = cql_target($id); + my $rs; + eval { + $rs = $irspy->{conn}->search(new ZOOM::Query::CQL($query)); + }; if ($@) { + die "registry search for record '$id' had error: '$@'"; + } my $n = $rs->size(); - $this->log("irspy", "query '$query' found $n records"); + $this->log("irspy", "query '$query' found $n record", $n==1 ? "" : "s"); + ### More than 1 hit is always an error and indicates duplicate + # records in the database; no hits is fine for a new target + # being probed for the first time, but not if the connection is + # being created as part of an "all known targets" scan. my $zeerex; $zeerex = render_record($rs, 0, "zeerex") if $n > 0; - $this->{record} = new ZOOM::IRSpy::Record($this, - irspy_identifier2target($target), $zeerex); + $this->{record} = new ZOOM::IRSpy::Record($this, $target, $zeerex); return $this; } @@ -132,12 +141,20 @@ sub irspy_connect { } -sub irspy_search_pqf { +sub irspy_search { my $this = shift(); - my($query, $udata, $options, %cb) = @_; + my($qtype, $qstr, $udata, $options, %cb) = @_; + #warn "calling $this->irspy_search(", join(", ", @_), ")\n"; $this->add_task(new ZOOM::IRSpy::Task::Search - ($query, $this, $udata, $options, %cb)); + ($qtype, $qstr, $this, $udata, $options, %cb)); +} + + +# Wrapper for backwards compatibility +sub irspy_search_pqf { + my $this = shift(); + return $this->irspy_search("pqf", @_); }