Diff for /libraries/libldap/result.c between versions 1.124.2.27 and 1.173

version 1.124.2.27, 2011/01/04 16:40:41 version 1.173, 2010/10/13 06:43:16
Line 1 Line 1
 /* result.c - wait for an ldap result */  /* result.c - wait for an ldap result */
 /* $OpenLDAP$ */  /* $OpenLDAP: pkg/ldap/libraries/libldap/result.c,v 1.172 2010/06/02 01:30:19 hyc Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 1998-2010 The OpenLDAP Foundation.   * Copyright 1998-2010 The OpenLDAP Foundation.
Line 503  nextresp3: Line 503  nextresp3:
                 Debug( LDAP_DEBUG_CONNS,                  Debug( LDAP_DEBUG_CONNS,
                         "ber_get_next failed.\n", 0, 0, 0 );                          "ber_get_next failed.\n", 0, 0, 0 );
 #endif               #endif             
   #ifdef EWOULDBLOCK                      
                 if ( err == EWOULDBLOCK ) return LDAP_MSG_X_KEEP_LOOKING;                  if ( err == EWOULDBLOCK ) return LDAP_MSG_X_KEEP_LOOKING;
   #endif
   #ifdef EAGAIN
                 if ( err == EAGAIN ) return LDAP_MSG_X_KEEP_LOOKING;                  if ( err == EAGAIN ) return LDAP_MSG_X_KEEP_LOOKING;
   #endif
                 ld->ld_errno = LDAP_SERVER_DOWN;                  ld->ld_errno = LDAP_SERVER_DOWN;
                 --lc->lconn_refcnt;                  --lc->lconn_refcnt;
                 lc->lconn_status = 0;                  lc->lconn_status = 0;
Line 826  nextresp2: Line 830  nextresp2:
                         Debug( LDAP_DEBUG_TRACE,                          Debug( LDAP_DEBUG_TRACE,
                                 "read1msg:  mark request completed, ld %p msgid %d\n",                                  "read1msg:  mark request completed, ld %p msgid %d\n",
                                 (void *)ld, lr->lr_msgid, 0);                                  (void *)ld, lr->lr_msgid, 0);
                         tmplr = lr;  
                         while ( lr->lr_parent != NULL ) {                          while ( lr->lr_parent != NULL ) {
                                 merge_error_info( ld, lr->lr_parent, lr );                                  merge_error_info( ld, lr->lr_parent, lr );
   
Line 835  nextresp2: Line 838  nextresp2:
                                         break;  /* not completely done yet */                                          break;  /* not completely done yet */
                                 }                                  }
                         }                          }
                         /* ITS#6744: Original lr was refcounted when we retrieved it,  
                          * must release it now that we're working with the parent  
                          */  
                         if ( tmplr->lr_parent ) {  
                                 ldap_return_request( ld, tmplr, 0 );  
                         }  
   
                         /* Check if all requests are finished, lr is now parent */                          /* Check if all requests are finished, lr is now parent */
                         tmplr = lr;                          tmplr = lr;
Line 885  nextresp2: Line 882  nextresp2:
                         }                          }
   
                         /*                          /*
                          * RFC 4511 unsolicited (id == 0) responses                           * RF 4511 unsolicited (id == 0) responses
                          * shouldn't necessarily end the connection                           * shouldn't necessarily end the connection
                          */                           */
                         if ( lc != NULL && id != 0 ) {                          if ( lc != NULL && id != 0 ) {

Removed from v.1.124.2.27  
changed lines
  Added in v.1.173


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org