X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Ffilter_z3950_client.cpp;h=2ebe7702adb531edc600d81e41a42b5515d6b175;hb=4de623c02179a8db0b8d7ff8309bc55435a4f473;hp=06f58e14cdd6ff718aae73c1b8b8fb4274266a0c;hpb=27c26deb38493c58ae0b388d22f55cc93fc68881;p=metaproxy-moved-to-github.git diff --git a/src/filter_z3950_client.cpp b/src/filter_z3950_client.cpp index 06f58e1..2ebe770 100644 --- a/src/filter_z3950_client.cpp +++ b/src/filter_z3950_client.cpp @@ -386,8 +386,16 @@ void yf::Z3950Client::Rep::send_and_receive(Package &package, c->m_waiting = true; if (!c->m_connected) { - c->client(c->m_host.c_str()); + if (c->client(c->m_host.c_str())) + { + mp::odr odr; + package.response() = + odr.create_close(gdu->u.z3950, Z_Close_peerAbort, 0); + package.session().close(); + return; + } c->timeout(1); // so timeoutNotify gets called once per second + while (!c->m_destroyed && c->m_waiting && c->m_socket_manager->processEvent() > 0) @@ -457,7 +465,8 @@ void yf::Z3950Client::process(Package &package) const } } -void yf::Z3950Client::configure(const xmlNode *ptr, bool test_only) +void yf::Z3950Client::configure(const xmlNode *ptr, bool test_only, + const char *path) { for (ptr = ptr->children; ptr; ptr = ptr->next) {