Diff for /libraries/libldap/result.c between versions 1.92 and 1.93

version 1.92, 2004/03/25 08:54:23 version 1.93, 2004/03/25 11:15:52
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.91 2004/01/01 18:15:27 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/libraries/libldap/result.c,v 1.92 2004/03/25 08:54:23 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-2004 The OpenLDAP Foundation.   * Copyright 1998-2004 The OpenLDAP Foundation.
Line 73  static int ldap_mark_abandoned LDAP_P(( Line 73  static int ldap_mark_abandoned LDAP_P((
 static int wait4msg LDAP_P(( LDAP *ld, ber_int_t msgid, int all, struct timeval *timeout,  static int wait4msg LDAP_P(( LDAP *ld, ber_int_t msgid, int all, struct timeval *timeout,
         LDAPMessage **result ));          LDAPMessage **result ));
 static ber_tag_t try_read1msg LDAP_P(( LDAP *ld, ber_int_t msgid,  static ber_tag_t try_read1msg LDAP_P(( LDAP *ld, ber_int_t msgid,
         int all, Sockbuf *sb, LDAPConn *lc, LDAPMessage **result ));          int all, Sockbuf *sb, LDAPConn **lc, LDAPMessage **result ));
 static ber_tag_t build_result_ber LDAP_P(( LDAP *ld, BerElement **bp, LDAPRequest *lr ));  static ber_tag_t build_result_ber LDAP_P(( LDAP *ld, BerElement **bp, LDAPRequest *lr ));
 static void merge_error_info LDAP_P(( LDAP *ld, LDAPRequest *parentr, LDAPRequest *lr ));  static void merge_error_info LDAP_P(( LDAP *ld, LDAPRequest *parentr, LDAPRequest *lr ));
 static LDAPMessage * chkResponseList LDAP_P(( LDAP *ld, int msgid, int all));  static LDAPMessage * chkResponseList LDAP_P(( LDAP *ld, int msgid, int all));
Line 319  wait4msg( Line 319  wait4msg(
                                 nextlc = lc->lconn_next;                                  nextlc = lc->lconn_next;
                                 if ( ber_sockbuf_ctrl( lc->lconn_sb,                                  if ( ber_sockbuf_ctrl( lc->lconn_sb,
                                                 LBER_SB_OPT_DATA_READY, NULL ) ) {                                                  LBER_SB_OPT_DATA_READY, NULL ) ) {
                                             rc = try_read1msg( ld, msgid, all, lc->lconn_sb,                                          rc = try_read1msg( ld, msgid, all, lc->lconn_sb,
                                                 lc, result );                                                  &lc, result );
                                     break;                                      break;
                                 }                                  }
                 }                  }
Line 374  wait4msg( Line 374  wait4msg(
                                                 ldap_is_read_ready( ld,                                                  ldap_is_read_ready( ld,
                                                 lc->lconn_sb )) {                                                  lc->lconn_sb )) {
                                                     rc = try_read1msg( ld, msgid, all,                                                      rc = try_read1msg( ld, msgid, all,
                                                         lc->lconn_sb, lc, result );                                                          lc->lconn_sb, &lc, result );
                                                           if ( lc == NULL ) lc = nextlc;
                                             }                                              }
                                     }                                      }
                             }                              }
Line 410  try_read1msg( Line 411  try_read1msg(
         ber_int_t msgid,          ber_int_t msgid,
         int all,          int all,
         Sockbuf *sb,          Sockbuf *sb,
         LDAPConn *lc,          LDAPConn **lcp,
         LDAPMessage **result )          LDAPMessage **result )
 {  {
         BerElement      *ber;          BerElement      *ber;
Line 420  try_read1msg( Line 421  try_read1msg(
         ber_len_t       len;          ber_len_t       len;
         int             foundit = 0;          int             foundit = 0;
         LDAPRequest     *lr, *tmplr;          LDAPRequest     *lr, *tmplr;
           LDAPConn        *lc;
         BerElement      tmpber;          BerElement      tmpber;
         int             rc, refer_cnt, hadref, simple_request;          int             rc, refer_cnt, hadref, simple_request;
         ber_int_t       lderr;          ber_int_t       lderr;
Line 433  try_read1msg( Line 435  try_read1msg(
         int     v3ref;          int     v3ref;
   
         assert( ld != NULL );          assert( ld != NULL );
         assert( lc != NULL );          assert( lcp != NULL );
           assert( *lcp != NULL );
                   
 #ifdef NEW_LOGGING  #ifdef NEW_LOGGING
         LDAP_LOG ( OPERATION, ARGS, "read1msg: msgid %d, all %d\n", msgid, all, 0 );          LDAP_LOG ( OPERATION, ARGS, "read1msg: msgid %d, all %d\n", msgid, all, 0 );
Line 441  try_read1msg( Line 444  try_read1msg(
         Debug( LDAP_DEBUG_TRACE, "read1msg: msgid %d, all %d\n", msgid, all, 0 );          Debug( LDAP_DEBUG_TRACE, "read1msg: msgid %d, all %d\n", msgid, all, 0 );
 #endif  #endif
   
           lc = *lcp;
   
 retry:  retry:
         if ( lc->lconn_ber == NULL ) {          if ( lc->lconn_ber == NULL ) {
                 lc->lconn_ber = ldap_alloc_ber_with_options(ld);                  lc->lconn_ber = ldap_alloc_ber_with_options(ld);
Line 816  lr->lr_res_matched ? lr->lr_res_matched Line 821  lr->lr_res_matched ? lr->lr_res_matched
   
                         if ( lc != NULL ) {                          if ( lc != NULL ) {
                                 ldap_free_connection( ld, lc, 0, 1 );                                  ldap_free_connection( ld, lc, 0, 1 );
                                   *lcp = NULL;
                         }                          }
                 }                  }
         }          }

Removed from v.1.92  
changed lines
  Added in v.1.93


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