]> git.sur5r.net Git - openldap/commitdiff
ITS#837: fix server down abandon bug
authorKurt Zeilenga <kurt@openldap.org>
Tue, 17 Oct 2000 21:46:42 +0000 (21:46 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 17 Oct 2000 21:46:42 +0000 (21:46 +0000)
CHANGES
libraries/libldap/abandon.c

diff --git a/CHANGES b/CHANGES
index 9cc37b7d42aa9c84fa529c871c6cc1921c6b47f7..416cc7bc8fe0580871366895ed0195238804ec69 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,7 @@ OpenLDAP 2.0 Change Log
 
 OpenLDAP 2.0.X Engineering
        Fixed -lldap TLS data ready bug (ITS#821)
+       Fixed -lldap abandon unsent op bug (ITS#837)
        Fixed slapd spasswd mutex bug
        Fixed slapd ACL nameuid bug
        Fixed slapd SASL layerring bug
index 597ded2f8428ab726e4c5779c091f18293227d9f..fbb184722a5357553da576b82ea5873972c6a6ca 100644 (file)
@@ -131,12 +131,18 @@ do_abandon(
 
        err = 0;
        if ( sendabandon ) {
-               /* create a message to send */
-               if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
+               if( ber_sockbuf_ctrl( ld->ld_sb, LBER_SB_OPT_GET_FD, NULL ) == -1 ) {
+                       /* not connected */
+                       err = -1;
+                       ld->ld_errno = LDAP_SERVER_DOWN;
+
+               } else if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
+                       /* BER element alocation failed */
                        err = -1;
                        ld->ld_errno = LDAP_NO_MEMORY;
 
                } else {
+                       /* create a message to send */
                        err = ber_printf( ber, "{iti",  /* '}' */
                                ++ld->ld_msgid,
                            LDAP_REQ_ABANDON, msgid );