X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Fyaz-proxy.cpp;h=5c22a644f8f2004aae26e489343df95eb3815b79;hb=06dc8aa3ef65d9942beeb039178881f428f791f0;hp=3ec98a153d7ebf1e08a7e0b3de0f0e677cef5673;hpb=a26937ed9db61e3973e2b297715fcfda43a537a4;p=yazproxy-moved-to-github.git diff --git a/src/yaz-proxy.cpp b/src/yaz-proxy.cpp index 3ec98a1..5c22a64 100644 --- a/src/yaz-proxy.cpp +++ b/src/yaz-proxy.cpp @@ -1,4 +1,4 @@ -/* $Id: yaz-proxy.cpp,v 1.62 2006-04-26 11:59:11 adam Exp $ +/* $Id: yaz-proxy.cpp,v 1.65 2006-05-01 09:14:08 adam Exp $ Copyright (c) 1998-2006, Index Data. This file is part of the yazproxy. @@ -452,6 +452,7 @@ IPDU_Observer *Yaz_Proxy::sessionNotify(IPDU_Observable new_proxy->set_default_target(m_default_target); new_proxy->m_max_clients = m_max_clients; new_proxy->m_log_mask = m_log_mask; + new_proxy->m_session_no = m_session_no; if (!strcmp(peername, "tcp:163.121.19.82")) // NIS GROUP new_proxy->m_log_mask = 255; @@ -601,8 +602,14 @@ Yaz_ProxyClient *Yaz_Proxy::get_client(Z_APDU *apdu, const char *cookie, m_client_idletime = client_idletime; timeout(m_client_idletime); } + + // get those FILE descriptors available + m_parent->low_socket_close(); if (cql2rpn_fname) m_cql2rpn.set_pqf_file(cql2rpn_fname); + // reserve them again + m_parent->low_socket_open(); + if (negotiation_charset || negotiation_lang || default_client_query_charset) { set_proxy_negotiation(negotiation_charset, @@ -3122,8 +3129,9 @@ void Yaz_Proxy::handle_init(Z_APDU *apdu) handle_charset_lang_negotiation(apdu2); + if (m_timeout_mode == timeout_busy) + m_timeout_mode = timeout_normal; send_to_client(apdu2); - m_timeout_mode = timeout_normal; return; } } @@ -3691,7 +3699,9 @@ void Yaz_ProxyClient::recv_Z_PDU(Z_APDU *apdu, int len) *imv1 = '\0'; if (imv0) strcat(imv1, imv0); +#ifdef VERSION strcat(imv1, "/" VERSION); +#endif ir->implementationVersion = imv1; // apply YAZ Proxy implementation name