X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_z3950_client.cpp;h=2d9e6a64a2e70680dabc346228dde055326b4d22;hb=098f68aa472b0827a0dfdfda38a338cde577ef98;hp=e78a76b1e18914028dfbea07e377bf512eafdc34;hpb=53fa483f7ee74290fa3a34530a9826160c1a8a4c;p=metaproxy-moved-to-github.git diff --git a/src/filter_z3950_client.cpp b/src/filter_z3950_client.cpp index e78a76b..2d9e6a6 100644 --- a/src/filter_z3950_client.cpp +++ b/src/filter_z3950_client.cpp @@ -1,7 +1,7 @@ -/* $Id: filter_z3950_client.cpp,v 1.25 2006-03-29 13:44:45 adam Exp $ +/* $Id: filter_z3950_client.cpp,v 1.28 2006-08-30 12:27:34 adam Exp $ Copyright (c) 2005-2006, Index Data. -%LICENSE% + See the LICENSE file for details */ #include "config.hpp" @@ -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) { @@ -225,8 +227,7 @@ yf::Z3950Client::Assoc *yf::Z3950Client::Rep::get_assoc(Package &package) return 0; } std::list vhosts; - mp::util::get_vhost_otherinfo(&apdu->u.initRequest->otherInfo, - true, vhosts); + mp::util::remove_vhost_otherinfo(&apdu->u.initRequest->otherInfo, vhosts); size_t no_vhosts = vhosts.size(); if (no_vhosts == 0) { @@ -285,7 +286,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 +372,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 {