X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fyaz-pdu-assoc.cpp;h=c7475fce02acacf86c02c7a0ade9328881917a80;hb=66767801433aba6cd2ac9fc744a1057867df7fa9;hp=e20837b77d9ac2ebfc108496ba2be812ce7cd77a;hpb=c6e5ad789740135af3558298f6e2014ae99ee7dd;p=yazpp-moved-to-github.git diff --git a/src/yaz-pdu-assoc.cpp b/src/yaz-pdu-assoc.cpp index e20837b..c7475fc 100644 --- a/src/yaz-pdu-assoc.cpp +++ b/src/yaz-pdu-assoc.cpp @@ -4,7 +4,18 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: yaz-pdu-assoc.cpp,v $ - * Revision 1.5 1999-04-09 11:46:57 adam + * Revision 1.8 1999-04-28 13:04:03 adam + * Fixed setting of proxy otherInfo so that database(s) are removed. + * + * Revision 1.7 1999/04/21 12:09:01 adam + * Many improvements. Modified to proxy server to work with "sessions" + * based on cookies. + * + * Revision 1.6 1999/04/20 10:30:05 adam + * Implemented various stuff for client and proxy. Updated calls + * to ODR to reflect new name parameter. + * + * Revision 1.5 1999/04/09 11:46:57 adam * Added object Yaz_Z_Assoc. Much more functional client. * * Revision 1.4 1999/03/23 14:17:57 adam @@ -112,8 +123,8 @@ void Yaz_PDU_Assoc::socketNotify(int event) assoc->m_socketObservable->maskObserver(assoc, YAZ_SOCKET_OBSERVE_READ| YAZ_SOCKET_OBSERVE_EXCEPT); - if (m_idleTime) - assoc->m_socketObservable->timeoutObserver(assoc, m_idleTime); + assoc->m_socketObservable->timeoutObserver(assoc, + assoc->m_idleTime); } } else if (m_state == Ready) @@ -243,10 +254,11 @@ int Yaz_PDU_Assoc::flush_PDU() m_socketObservable->maskObserver(this, YAZ_SOCKET_OBSERVE_READ| YAZ_SOCKET_OBSERVE_EXCEPT| YAZ_SOCKET_OBSERVE_WRITE); - logf (LOG_LOG, "flush_PDU put %d bytes (incomplete write)", q->m_len); + logf (LOG_LOG, "Yaz_PDU_Assoc::flush_PDU put %d bytes (incomplete)", + q->m_len); return r; } - logf (LOG_LOG, "flush_PDU put %d bytes fd=%d", q->m_len, cs_fileno(m_cs)); + logf (LOG_LOG, "Yaz_PDU_Assoc::flush_PDU put %d bytes", q->m_len); // whole packet sent... delete this and proceed to next ... m_queue_out = q->m_next; delete q; @@ -265,8 +277,8 @@ int Yaz_PDU_Assoc::send_PDU(const char *buf, int len) if (!m_cs) { - logf (LOG_LOG, "send_PDU failed, m_cs == 0"); - return 0; + logf (LOG_LOG, "Yaz_PDU_Assoc::send_PDU failed, m_cs == 0"); + return -1; } while (*pq) pq = &(*pq)->m_next; @@ -274,7 +286,8 @@ int Yaz_PDU_Assoc::send_PDU(const char *buf, int len) if (is_idle) return flush_PDU (); else - logf (LOG_LOG, "cannot send_PDU fd=%d", cs_fileno(m_cs)); + logf (LOG_LOG, "Yaz_PDU_Assoc::cannot send_PDU fd=%d", + cs_fileno(m_cs)); return 0; } @@ -314,6 +327,8 @@ void Yaz_PDU_Assoc::listen(IYaz_PDU_Observer *observer, void Yaz_PDU_Assoc::idleTime(int idleTime) { m_idleTime = idleTime; + logf (LOG_LOG, "Yaz_PDU_Assoc::idleTime(%d)", idleTime); + m_socketObservable->timeoutObserver(this, m_idleTime); } void Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer, @@ -332,8 +347,17 @@ void Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer, int res = cs_connect (cs, ap); if (res < 0) { - logf (LOG_DEBUG, "Yaz_PDU_Assoc::connect failed"); + logf (LOG_LOG|LOG_ERRNO, "Yaz_PDU_Assoc::connect failed"); +#if 1 + logf (LOG_LOG, "Yaz_PDU_Assoc::connect fd=%d", cs_fileno(cs)); + m_socketObservable->addObserver(cs_fileno(cs), this); + m_socketObservable->maskObserver(this, YAZ_SOCKET_OBSERVE_READ| + YAZ_SOCKET_OBSERVE_EXCEPT| + YAZ_SOCKET_OBSERVE_WRITE); + m_state = Connecting; +#else close (); +#endif } else { @@ -344,12 +368,12 @@ void Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer, YAZ_SOCKET_OBSERVE_WRITE); if (res == 1) { - logf (LOG_LOG, "Connect pending"); + logf (LOG_LOG, "Yaz_PDU_Assoc::connect pending"); m_state = Connecting; } else { - logf (LOG_LOG, "Connect complete"); + logf (LOG_LOG, "Yaz_PDU_Assoc::Connect complete"); m_state = Connected; } }