]> git.sur5r.net Git - openldap/commitdiff
Look on connection_read() if it returns positive so it has a chance
authorJulio Sánchez Fernández <jsanchez@openldap.org>
Fri, 16 Jul 1999 18:53:30 +0000 (18:53 +0000)
committerJulio Sánchez Fernández <jsanchez@openldap.org>
Fri, 16 Jul 1999 18:53:30 +0000 (18:53 +0000)
to exhaust all protocol units received from the transport layer.
I think this is the necessary fix for the TLS-data-ready/
socket-not-ready issue, but I have not experimented that problem
yet, so I am unsure about its effectiveness.
Now, do we need something like that for connection_write?  How would
we go about implementing it?

servers/slapd/daemon.c

index ee09d97731998f5193fff928739b68c1b7198831..4f8b3c7a37acfc7fd494a4f9812ef9d6b0f4a82b 100644 (file)
@@ -689,6 +689,7 @@ slapd_daemon_task(
                {
                        ber_socket_t rd;
                        int is_listener = 0;
+                       int rc;
 
 #ifdef HAVE_WINSOCK
                        rd = readfds.fd_array[i];
@@ -719,7 +720,9 @@ slapd_daemon_task(
                         * active.
                         */
 
-                       if ( connection_read( rd ) < 0 ) {
+                       while ( ( rc = connection_read( rd ) ) > 0 )
+                               ;
+                       if ( rc < 0 ) {
                                slapd_close( rd );
                        }
                }