]> git.sur5r.net Git - openldap/commitdiff
ITS#5606
authorQuanah Gibson-Mount <quanah@openldap.org>
Wed, 3 Sep 2008 00:29:02 +0000 (00:29 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 3 Sep 2008 00:29:02 +0000 (00:29 +0000)
CHANGES
servers/slapd/daemon.c

diff --git a/CHANGES b/CHANGES
index d9e3f0a426d2f0ebe0fd1b50d80f34f8ea19d6c3..206bfef18aebd04ef60515e71e76e29c650c0bbe 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,7 @@
 OpenLDAP 2.4 Change Log
 
 OpenLDAP 2.4.12 Engineering
+       Fixed slapd socket closing on Windows (ITS#5606)
        Fixed slapd-meta quarantine behavior (ITS#5592)
        Fixed slapo-constraint string termination (ITS#5609)
        Fixed slapo-rwm callback cleanup (ITS#5601)
index 45bd7d3fe801afd8a33cad32a46c09c51e1793c4..92a2b03095c561c384c16296b6163538c0e69ce1 100644 (file)
@@ -79,7 +79,11 @@ Listener **slap_listeners = NULL;
 #define SLAPD_LISTEN_BACKLOG 1024
 #endif /* ! SLAPD_LISTEN_BACKLOG */
 
-static ber_socket_t wake_sds[2];
+static ber_socket_t wake_sds[2]
+#ifdef HAVE_WINSOCK
+       = { INVALID_SOCKET, INVALID_SOCKET }
+#endif /* HAVE_WINSOCK */
+       ;
 static int emfile;
 
 static volatile int waking;
@@ -1641,8 +1645,14 @@ int
 slapd_daemon_destroy( void )
 {
        connections_destroy();
-       tcp_close( SLAP_FD2SOCK(wake_sds[1]) );
-       tcp_close( SLAP_FD2SOCK(wake_sds[0]) );
+#ifdef HAVE_WINSOCK
+       if ( wake_sds[1] != INVALID_SOCKET )
+#endif /* HAVE_WINSOCK */
+               tcp_close( SLAP_FD2SOCK(wake_sds[1]) );
+#ifdef HAVE_WINSOCK
+       if ( wake_sds[0] != INVALID_SOCKET )
+#endif /* HAVE_WINSOCK */
+               tcp_close( SLAP_FD2SOCK(wake_sds[0]) );
        sockdestroy();
 
 #ifdef HAVE_SLP