Destroy connection's old result-set when making a new one.
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Task / Search.pm
index dacf9c8..91af576 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Search.pm,v 1.5 2006-10-25 13:36:47 mike Exp $
+# $Id: Search.pm,v 1.11 2007-03-09 08:57:34 mike Exp $
 
 package ZOOM::IRSpy::Task::Search;
 
@@ -39,26 +39,22 @@ sub run {
     $this->set_options();
 
     my $conn = $this->conn();
+    $conn->connect($conn->option("host"));
+
     my $query = $this->{query};
     $this->irspy()->log("irspy_task", $conn->option("host"),
                        " searching for '$query'");
+    $this->{rs}->destroy() if defined $this->{rs};
     $this->{rs} = $conn->search_pqf($query);
+    warn "no ZOOM-C level events queued by $this"
+       if $conn->is_idle();
 
     $this->set_options();
-
-    # I want to catch the situation where a search is attempted on a
-    # not-yet opened connection (e.g. the Search::Title test is run
-    # before Ping) but since this situation doesn't involve the
-    # generation of a ZOOM event, the main loop won't see an error.
-    # So I check for it immediately:
-    $conn->_check();
-    # ### Unfortunately, this also fails to detect the condition I'm
-    # concerned with, so I think I am out of luck.
 }
 
 sub render {
     my $this = shift();
-    return ref($this) . "(" . $this->{query}. ")";
+    return ref($this) . "(" . $this->{query} . ")";
 }
 
 use overload '""' => \&render;