Diff for /libraries/libldap/result.c between versions 1.141 and 1.142

version 1.141, 2006/12/12 23:36:12 version 1.142, 2006/12/14 05:58:57
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.140 2006/12/03 23:11:12 ando Exp $ */  /* $OpenLDAP: pkg/ldap/libraries/libldap/result.c,v 1.141 2006/12/12 23:36:12 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-2006 The OpenLDAP Foundation.   * Copyright 1998-2006 The OpenLDAP Foundation.
Line 688  nextresp2: Line 688  nextresp2:
                                         if ( LDAP_BOOL_GET(&ld->ld_options, LDAP_BOOL_REFERRALS)                                          if ( LDAP_BOOL_GET(&ld->ld_options, LDAP_BOOL_REFERRALS)
                                                          || lr->lr_parent != NULL )                                                           || lr->lr_parent != NULL )
                                         {                                          {
                                                 /* Assume referral not chased and return it to app */  
                                                 v3ref = V3REF_TOAPP;  
   
                                                 /* Get the referral list */                                                  /* Get the referral list */
                                                 if ( ber_scanf( &tmpber, "{v}", &refs) == LBER_ERROR) {                                                  if ( ber_scanf( &tmpber, "{v}", &refs) == LBER_ERROR) {
                                                         rc = LDAP_DECODING_ERROR;                                                          rc = LDAP_DECODING_ERROR;
Line 708  nextresp2: Line 705  nextresp2:
                                                                 0, &lr->lr_res_error, &hadref );                                                                  0, &lr->lr_res_error, &hadref );
                                                         lr->lr_status = LDAP_REQST_COMPLETED;                                                          lr->lr_status = LDAP_REQST_COMPLETED;
                                                         Debug( LDAP_DEBUG_TRACE,                                                          Debug( LDAP_DEBUG_TRACE,
                                                                 "read1msg: referral chased, "                                                                  "read1msg: referral %s chased, "
                                                                 "mark request completed, ld %p msgid %d\n",                                                                  "mark request completed, ld %p msgid %d\n",
                                                                 (void *)ld, lr->lr_msgid, 0);                                                                  hadref ? "" : "not",
                                                                   (void *)ld, lr->lr_msgid);
                                                         if ( refer_cnt > 0 ) {                                                          if ( refer_cnt > 0 ) {
                                                                 /* Referral successfully chased */                                                                  /* Referral successfully chased */
                                                                 v3ref = V3REF_SUCCESS;                                                                  v3ref = V3REF_SUCCESS;
                                                           } else {
                                                                   refer_cnt = 0;
                                                         }                                                          }
                                                 }                                                  }
                                         }                                          }
Line 728  nextresp2: Line 728  nextresp2:
                                         LDAP_FREE( lr->lr_res_error );                                          LDAP_FREE( lr->lr_res_error );
                                         lr->lr_res_error = NULL;                                          lr->lr_res_error = NULL;
                                 }                                  }
   
                                 /* Since it's not a SearchReference, it must be a  
                                  * result. Since we're not chasing the referral,  
                                  * this request is done.  
                                  */  
                                 if ( v3ref == V3REF_TOAPP ) {  
                                         lr->lr_status = LDAP_REQST_COMPLETED;  
                                         Debug( LDAP_DEBUG_TRACE,  
                                                 "request done: ld %p msgid %d, "  
                                                 "referral returned to app\n",  
                                                 (void *)ld, lr->lr_msgid, 0);  
                                         ldap_return_request( ld, lr, 1 );  
                                         lr = NULL;  
                                 }  
                         }                          }
                 }                  }
         }          }
Line 751  nextresp2: Line 737  nextresp2:
          * and checks if all referrals have been chased.           * and checks if all referrals have been chased.
          */           */
         if ( tag != LDAP_RES_SEARCH_ENTRY &&          if ( tag != LDAP_RES_SEARCH_ENTRY &&
                 v3ref != V3REF_TOAPP &&                  tag != LDAP_RES_SEARCH_REFERENCE &&
                 tag != LDAP_RES_INTERMEDIATE )                  tag != LDAP_RES_INTERMEDIATE )
         {          {
                 /* For a v3 search referral/reference, only come here if already chased it */                  /* For a v3 search referral/reference, only come here if already chased it */
                 if ( ld->ld_version >= LDAP_VERSION2 &&                  if ( ld->ld_version >= LDAP_VERSION2 &&
                           v3ref != V3REF_TOAPP &&
                         ( lr->lr_parent != NULL ||                          ( lr->lr_parent != NULL ||
                         LDAP_BOOL_GET(&ld->ld_options, LDAP_BOOL_REFERRALS) ) )                          LDAP_BOOL_GET(&ld->ld_options, LDAP_BOOL_REFERRALS) ) )
                 {                  {

Removed from v.1.141  
changed lines
  Added in v.1.142


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