+ if (no_of_clients >= parent->m_max_clients)
+ {
+ c = c_min;
+ logf (LOG_LOG, "Yaz_Proxy::get_client re-using session %d",
+ c->m_seqno);
+ if (c->m_server)
+ delete c->m_server;
+ c->m_server = 0;
+ }
+ else
+ {
+ logf (LOG_LOG, "Yaz_Proxy::get_client making session %d",
+ parent->m_seqno);
+ c = new Yaz_ProxyClient(m_PDU_Observable->clone());
+ c->m_next = parent->m_clientPool;
+ if (c->m_next)
+ c->m_next->m_prev = &c->m_next;
+ parent->m_clientPool = c;
+ c->m_prev = &parent->m_clientPool;
+ }
+ sprintf (c->m_cookie, "%lx.%d", m_seed, parent->m_seqno);
+ logf (LOG_LOG, "Yaz_Proxy::get_client connect to %s", m_proxyTarget);
+ c->m_seqno = parent->m_seqno;
+ c->client(m_proxyTarget);
+ c->m_init_flag = 0;
+
+ delete c->m_last_query;
+ c->m_last_query = 0;
+ c->m_last_resultCount = 0;
+ c->m_sr_transform = 0;
+