X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Ffilter_z3950_client.cpp;h=0f0b92fcd2e3188e9f4b5b4730443d8c261c0e81;hb=4f255e4396867c12c79da88ac82e93daac6b4cc4;hp=0c775e74fe1659d10c6c1ddfc67e56f19ff57270;hpb=79100c2ae2dac4bdde4f4d46b69e147562b4ec6c;p=metaproxy-moved-to-github.git diff --git a/src/filter_z3950_client.cpp b/src/filter_z3950_client.cpp index 0c775e7..0f0b92f 100644 --- a/src/filter_z3950_client.cpp +++ b/src/filter_z3950_client.cpp @@ -1,7 +1,7 @@ -/* $Id: filter_z3950_client.cpp,v 1.24 2006-03-16 10:40:59 adam Exp $ +/* $Id: filter_z3950_client.cpp,v 1.27 2006-06-21 14:34:16 adam Exp $ Copyright (c) 2005-2006, Index Data. -%LICENSE% + See the LICENSE file for details */ #include "config.hpp" @@ -24,9 +24,9 @@ #include #include -#include -#include -#include +#include +#include +#include namespace mp = metaproxy_1; namespace yf = mp::filter; @@ -62,6 +62,7 @@ namespace metaproxy_1 { class Z3950Client::Rep { public: + // number of seconds to wait before we give up request int m_timeout_sec; boost::mutex m_mutex; boost::condition m_cond_session_ready; @@ -192,6 +193,7 @@ yf::Z3950Client::Assoc *yf::Z3950Client::Rep::get_assoc(Package &package) while(true) { #if 0 + // double init .. NOT working yet if (gdu && gdu->which == Z_GDU_Z3950 && gdu->u.z3950->which == Z_APDU_initRequest) { @@ -285,7 +287,7 @@ void yf::Z3950Client::Rep::send_and_receive(Package &package, if (!c->m_connected) { c->client(c->m_host.c_str()); - c->timeout(1); + c->timeout(1); // so timeoutNotify gets called once per second while (!c->m_destroyed && c->m_waiting && c->m_socket_manager->processEvent() > 0) @@ -371,12 +373,7 @@ void yf::Z3950Client::configure(const xmlNode *ptr) continue; if (!strcmp((const char *) ptr->name, "timeout")) { - std::string timeout_str = mp::xml::get_text(ptr); - int timeout_sec = atoi(timeout_str.c_str()); - if (timeout_sec < 2) - throw mp::filter::FilterException("Bad timeout value " - + timeout_str); - m_p->m_timeout_sec = timeout_sec; + m_p->m_timeout_sec = mp::xml::get_int(ptr->children, 30); } else {