From c9239584a02846acc5694505143973041b473cdc Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 20 Nov 2000 14:17:36 +0000 Subject: [PATCH] Yet another WIN32 fix for connect notify. --- src/yaz-pdu-assoc.cpp | 9 ++++++--- src/yaz-socket-manager.cpp | 14 +++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/yaz-pdu-assoc.cpp b/src/yaz-pdu-assoc.cpp index a816d48..0925962 100644 --- a/src/yaz-pdu-assoc.cpp +++ b/src/yaz-pdu-assoc.cpp @@ -3,7 +3,10 @@ * See the file LICENSE for details. * * $Log: yaz-pdu-assoc.cpp,v $ - * Revision 1.20 2000-11-20 11:27:33 adam + * Revision 1.21 2000-11-20 14:17:36 adam + * Yet another WIN32 fix for connect notify. + * + * Revision 1.20 2000/11/20 11:27:33 adam * Fixes for connect operation (timeout and notify fix). * * Revision 1.19 2000/11/01 14:22:59 adam @@ -108,7 +111,7 @@ void Yaz_PDU_Assoc::socketNotify(int event) switch (m_state) { case Connecting: - if (event & YAZ_SOCKET_OBSERVE_READ) + if (event & (YAZ_SOCKET_OBSERVE_READ|YAZ_SOCKET_OBSERVE_EXCEPT)) { close(); m_PDU_Observer->failNotify(); @@ -390,7 +393,7 @@ void Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer, YAZ_SOCKET_OBSERVE_WRITE); if (res >= 0) m_state = Connecting; - // if res < 0, then cs_connect failed immediately. state is Closed.. + // if res < 0, then cs_connect failed immediately -> m_state is Closed.. } void Yaz_PDU_Assoc::socket(IYaz_PDU_Observer *observer, int fd) diff --git a/src/yaz-socket-manager.cpp b/src/yaz-socket-manager.cpp index 37ad03f..a64b9bc 100644 --- a/src/yaz-socket-manager.cpp +++ b/src/yaz-socket-manager.cpp @@ -3,7 +3,10 @@ * See the file LICENSE for details. * * $Log: yaz-socket-manager.cpp,v $ - * Revision 1.13 2000-11-20 11:27:33 adam + * Revision 1.14 2000-11-20 14:17:36 adam + * Yet another WIN32 fix for connect notify. + * + * Revision 1.13 2000/11/20 11:27:33 adam * Fixes for connect operation (timeout and notify fix). * * Revision 1.12 2000/10/24 12:29:57 adam @@ -164,11 +167,20 @@ int Yaz_SocketManager::processEvent() if (p->mask) no++; if (p->mask & YAZ_SOCKET_OBSERVE_READ) + { + yaz_log (m_log, "select fd=%d: read fd", fd); FD_SET(fd, &in); + } if (p->mask & YAZ_SOCKET_OBSERVE_WRITE) + { + yaz_log (m_log, "select fd=%d: write fd", fd); FD_SET(fd, &out); + } if (p->mask & YAZ_SOCKET_OBSERVE_EXCEPT) + { + yaz_log (m_log, "select fd=%d: except fd", fd); FD_SET(fd, &except); + } if (fd > max) max = fd; if (p->timeout) -- 1.7.10.4