X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=www%2Fz39util.tcl;h=216784c52d0fcec67c9cea0cf873ad42d56337e4;hb=a6e5ecf2a6d6dedf266c5f9d6bc2447a528b199e;hp=23fabd6bc6b7fb7bbb3d7393625dcf4b823f14ea;hpb=5bbe4c302d2d105aea7806317e9f31d5773a9536;p=egate.git diff --git a/www/z39util.tcl b/www/z39util.tcl index 23fabd6..216784c 100644 --- a/www/z39util.tcl +++ b/www/z39util.tcl @@ -1,5 +1,5 @@ # -# $Id: z39util.tcl,v 1.10 1995/11/14 09:53:16 adam Exp $ +# $Id: z39util.tcl,v 1.11 1995/11/14 16:01:52 adam Exp $ # proc saveState {} { uplevel #0 { @@ -412,7 +412,11 @@ proc z39search {setNo piggy tno elements} { displayError "Cannot connect to target" $host return 0 } elseif {$sessionWait == 0} { - zwait sessionWait + if {[catch {zwait sessionWait 300}]} { + $zz disconnect + displayError "Cannot connect to target" $host + return 0 + } if {$sessionWait != 1} { displayError "Cannot connect to target" $host return 0 @@ -422,6 +426,7 @@ proc z39search {setNo piggy tno elements} { set sessionWait 0 if {[catch {$zz init}]} { displayError "Cannot initialize target" $host + $zz disconnect return 0 } if {[catch {zwait sessionWait 60}]} { @@ -454,6 +459,7 @@ proc z39search {setNo piggy tno elements} { $zz.$setNo mediumSetElementSetNames $elements $zz.$setNo recordElements $elements + wlog debug "database=$database" eval $zz.$setNo databaseNames $database $zz.$setNo preferredRecordSyntax USMARC @@ -472,27 +478,20 @@ proc z39search {setNo piggy tno elements} { $zz.$setNo search $query if {[catch {zwait sessionWait 600}]} { - wlog debug "timeout/cancel in present" + wlog debug "timeout/cancel in search" displayError "Timeout in search" {} html "\n" $zz disconnect return 0 } - if {$sessionWait != 1} { + if {$sessionWait == -1} { displayError "Search fail" "Connection closed" html "\n" $zz disconnect - return 0 } - set status [$zz.$setNo responseStatus] - if {[lindex $status 0] == "NSD"} { - set code [lindex $status 1] - set msg [lindex $status 2] - set addinfo [lindex $status 3] - displayError "Diagnostic message" \ - "$msg: $addinfo\n
(error code $code)" - return 0 + if {$sessionWait != 1} { + return 0 } set hist($setNo,hits) [$zz.$setNo resultCount] return 1