Diff for /libraries/libldap/result.c between versions 1.124.2.10 and 1.124.2.13

version 1.124.2.10, 2008/02/11 23:26:41 version 1.124.2.13, 2008/09/26 22:23:05
Line 1 Line 1
 /* result.c - wait for an ldap result */  /* result.c - wait for an ldap result */
 /* $OpenLDAP: pkg/ldap/libraries/libldap/result.c,v 1.124.2.9 2008/02/08 23:59:45 quanah Exp $ */  /* $OpenLDAP: pkg/ldap/libraries/libldap/result.c,v 1.124.2.12 2008/07/09 23:16:48 quanah 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-2008 The OpenLDAP Foundation.   * Copyright 1998-2008 The OpenLDAP Foundation.
Line 351  wait4msg( Line 351  wait4msg(
 #endif  #endif
   
                         if ( !lc_ready ) {                          if ( !lc_ready ) {
                                   int err;
                                 rc = ldap_int_select( ld, tvp );                                  rc = ldap_int_select( ld, tvp );
 #ifdef LDAP_DEBUG  
                                 if ( rc == -1 ) {                                  if ( rc == -1 ) {
                                           err = sock_errno();
   #ifdef LDAP_DEBUG
                                         Debug( LDAP_DEBUG_TRACE,                                          Debug( LDAP_DEBUG_TRACE,
                                                 "ldap_int_select returned -1: errno %d\n",                                                  "ldap_int_select returned -1: errno %d\n",
                                                 sock_errno(), 0, 0 );                                                  err, 0, 0 );
                                 }  
 #endif  #endif
                                   }
   
                                 if ( rc == 0 || ( rc == -1 && (                                  if ( rc == 0 || ( rc == -1 && (
                                         !LDAP_BOOL_GET(&ld->ld_options, LDAP_BOOL_RESTART)                                          !LDAP_BOOL_GET(&ld->ld_options, LDAP_BOOL_RESTART)
                                                 || sock_errno() != EINTR ) ) )                                                  || err != EINTR ) ) )
                                 {                                  {
                                         ld->ld_errno = (rc == -1 ? LDAP_SERVER_DOWN :                                          ld->ld_errno = (rc == -1 ? LDAP_SERVER_DOWN :
                                                 LDAP_TIMEOUT);                                                  LDAP_TIMEOUT);
Line 493  try_read1msg( Line 495  try_read1msg(
         LDAPRequest     *lr, *tmplr, dummy_lr = { 0 };          LDAPRequest     *lr, *tmplr, dummy_lr = { 0 };
         LDAPConn        *lc;          LDAPConn        *lc;
         BerElement      tmpber;          BerElement      tmpber;
         int             rc, refer_cnt, hadref, simple_request;          int             rc, refer_cnt, hadref, simple_request, err;
         ber_int_t       lderr;          ber_int_t       lderr;
   
 #ifdef LDAP_CONNECTIONLESS  #ifdef LDAP_CONNECTIONLESS
Line 547  nextresp3: Line 549  nextresp3:
                 break;                  break;
   
         case LBER_DEFAULT:          case LBER_DEFAULT:
                   err = sock_errno();
 #ifdef LDAP_DEBUG                    #ifdef LDAP_DEBUG                  
                 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                        #ifdef EWOULDBLOCK                      
                 if ( sock_errno() == EWOULDBLOCK ) return LDAP_MSG_X_KEEP_LOOKING;                  if ( err == EWOULDBLOCK ) return LDAP_MSG_X_KEEP_LOOKING;
 #endif  #endif
 #ifdef EAGAIN  #ifdef EAGAIN
                 if ( sock_errno() == EAGAIN ) return LDAP_MSG_X_KEEP_LOOKING;                  if ( err == EAGAIN ) return LDAP_MSG_X_KEEP_LOOKING;
 #endif  #endif
                 ld->ld_errno = LDAP_SERVER_DOWN;                  ld->ld_errno = LDAP_SERVER_DOWN;
 #ifdef LDAP_R_COMPILE  #ifdef LDAP_R_COMPILE
Line 582  nextresp3: Line 585  nextresp3:
   
         /* id == 0 iff unsolicited notification message (RFC 4511) */          /* id == 0 iff unsolicited notification message (RFC 4511) */
   
           /* id < 0 is invalid, just toss it. FIXME: should we disconnect? */
           if ( id < 0 ) {
                   goto retry_ber;
           }
           
         /* if it's been abandoned, toss it */          /* if it's been abandoned, toss it */
         if ( id > 0 ) {          if ( id > 0 ) {
                 if ( ldap_abandoned( ld, id, &idx ) ) {                  if ( ldap_abandoned( ld, id, &idx ) ) {
Line 602  nextresp3: Line 610  nextresp3:
                         }                          }
   
                         Debug( LDAP_DEBUG_ANY,                          Debug( LDAP_DEBUG_ANY,
                                 "abandoned/discarded ld %p msgid %ld message type %s\n",                                  "abandoned/discarded ld %p msgid %d message type %s\n",
                                 (void *)ld, (long)id, ldap_int_msgtype2str( tag ) );                                  (void *)ld, id, ldap_int_msgtype2str( tag ) );
   
 retry_ber:  retry_ber:
                         ber_free( ber, 1 );                          ber_free( ber, 1 );
Line 629  retry_ber: Line 637  retry_ber:
                         }                          }
   
                         Debug( LDAP_DEBUG_ANY,                          Debug( LDAP_DEBUG_ANY,
                                 "no request for response on ld %p msgid %ld message type %s (tossing)\n",                                  "no request for response on ld %p msgid %d message type %s (tossing)\n",
                                 (void *)ld, (long)id, msg );                                  (void *)ld, id, msg );
   
                         goto retry_ber;                          goto retry_ber;
                 }                  }
Line 640  retry_ber: Line 648  retry_ber:
                         ber_scanf(ber, "x{");                          ber_scanf(ber, "x{");
                 }                  }
 nextresp2:  nextresp2:
                   ;
 #endif  #endif
         }          }
   
Line 652  nextresp2: Line 661  nextresp2:
         }          }
   
         Debug( LDAP_DEBUG_TRACE,          Debug( LDAP_DEBUG_TRACE,
                 "read1msg: ld %p msgid %ld message type %s\n",                  "read1msg: ld %p msgid %d message type %s\n",
                 (void *)ld, (long)lr->lr_msgid, ldap_int_msgtype2str( tag ) );                  (void *)ld, id, ldap_int_msgtype2str( tag ) );
   
         if ( id == 0 ) {          if ( id == 0 ) {
                 /* unsolicited notification message (RFC 4511) */                  /* unsolicited notification message (RFC 4511) */
Line 900  nextresp2: Line 909  nextresp2:
                         {                          {
                                 id = lr->lr_msgid;                                  id = lr->lr_msgid;
                                 tag = lr->lr_res_msgtype;                                  tag = lr->lr_res_msgtype;
                                 Debug( LDAP_DEBUG_TRACE, "request done: ld %p msgid %ld\n",                                  Debug( LDAP_DEBUG_TRACE, "request done: ld %p msgid %d\n",
                                         (void *)ld, (long) id, 0 );                                          (void *)ld, id, 0 );
                                 Debug( LDAP_DEBUG_TRACE,                                  Debug( LDAP_DEBUG_TRACE,
                                         "res_errno: %d, res_error: <%s>, "                                          "res_errno: %d, res_error: <%s>, "
                                         "res_matched: <%s>\n",                                          "res_matched: <%s>\n",
Line 1156  nextresp2: Line 1165  nextresp2:
                 goto exit;                  goto exit;
         }          }
   
         Debug( LDAP_DEBUG_TRACE, "adding response ld %p msgid %ld type %ld:\n",          Debug( LDAP_DEBUG_TRACE, "adding response ld %p msgid %d type %ld:\n",
                 (void *)ld, (long) newmsg->lm_msgid, (long) newmsg->lm_msgtype );                  (void *)ld, newmsg->lm_msgid, (long) newmsg->lm_msgtype );
   
         /* part of a search response - add to end of list of entries */          /* part of a search response - add to end of list of entries */
         l->lm_chain_tail->lm_chain = newmsg;          l->lm_chain_tail->lm_chain = newmsg;

Removed from v.1.124.2.10  
changed lines
  Added in v.1.124.2.13


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