Yet another WIN32 fix for connect notify.
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 20 Nov 2000 14:17:36 +0000 (14:17 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 20 Nov 2000 14:17:36 +0000 (14:17 +0000)
src/yaz-pdu-assoc.cpp
src/yaz-socket-manager.cpp

index a816d48..0925962 100644 (file)
@@ -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)
index 37ad03f..a64b9bc 100644 (file)
@@ -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)