Diff for /servers/slapd/bind.c between versions 1.189.2.5 and 1.189.2.6

version 1.189.2.5, 2005/09/28 00:30:30 version 1.189.2.6, 2005/11/14 18:06:08
Line 1 Line 1
 /* bind.c - decode an ldap bind operation and pass it to a backend db */  /* bind.c - decode an ldap bind operation and pass it to a backend db */
 /* $OpenLDAP: pkg/ldap/servers/slapd/bind.c,v 1.195 2005/09/10 07:56:29 ando Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/bind.c,v 1.198 2005/11/08 08:53:38 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-2005 The OpenLDAP Foundation.   * Copyright 1998-2005 The OpenLDAP Foundation.
Line 207  cleanup: Line 207  cleanup:
                 op->o_conn->c_authtype = op->orb_method;                  op->o_conn->c_authtype = op->orb_method;
         }          }
   
         op->o_conn->c_sasl_bindop = NULL;  
   
         if( !BER_BVISNULL( &op->o_req_dn ) ) {          if( !BER_BVISNULL( &op->o_req_dn ) ) {
                 slap_sl_free( op->o_req_dn.bv_val, op->o_tmpmemctx );                  slap_sl_free( op->o_req_dn.bv_val, op->o_tmpmemctx );
                 BER_BVZERO( &op->o_req_dn );                  BER_BVZERO( &op->o_req_dn );
Line 275  fe_op_bind( Operation *op, SlapReply *rs Line 273  fe_op_bind( Operation *op, SlapReply *rs
   
                 rs->sr_err = slap_sasl_bind( op, rs );                  rs->sr_err = slap_sasl_bind( op, rs );
   
                 ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );  
                 if( rs->sr_err == LDAP_SUCCESS ) {  
                         ber_dupbv(&op->o_conn->c_dn, &op->orb_edn);  
                         if( !BER_BVISEMPTY( &op->orb_edn ) ) {  
                                 /* edn is always normalized already */  
                                 ber_dupbv( &op->o_conn->c_ndn, &op->o_conn->c_dn );  
                         }  
                         op->o_tmpfree( op->orb_edn.bv_val, op->o_tmpmemctx );  
                         BER_BVZERO( &op->orb_edn );  
                         op->o_conn->c_authmech = op->o_conn->c_sasl_bind_mech;  
                         BER_BVZERO( &op->o_conn->c_sasl_bind_mech );  
                         op->o_conn->c_sasl_bind_in_progress = 0;  
   
                         op->o_conn->c_sasl_ssf = op->orb_ssf;  
                         if( op->orb_ssf > op->o_conn->c_ssf ) {  
                                 op->o_conn->c_ssf = op->orb_ssf;  
                         }  
   
                         if( !BER_BVISEMPTY( &op->o_conn->c_dn ) ) {  
                                 ber_len_t max = sockbuf_max_incoming_auth;  
                                 ber_sockbuf_ctrl( op->o_conn->c_sb,  
                                         LBER_SB_OPT_SET_MAX_INCOMING, &max );  
                         }  
   
                         /* log authorization identity */  
                         Statslog( LDAP_DEBUG_STATS,  
                                 "%s BIND dn=\"%s\" mech=%s ssf=%d\n",  
                                 op->o_log_prefix,  
                                 BER_BVISNULL( &op->o_conn->c_dn ) ? "<empty>" : op->o_conn->c_dn.bv_val,  
                                 op->o_conn->c_authmech.bv_val, op->orb_ssf, 0 );  
   
                         Debug( LDAP_DEBUG_TRACE,  
                                 "do_bind: SASL/%s bind: dn=\"%s\" ssf=%d\n",  
                                 op->o_conn->c_authmech.bv_val,  
                                 BER_BVISNULL( &op->o_conn->c_dn ) ? "<empty>" : op->o_conn->c_dn.bv_val,  
                                 op->orb_ssf );  
   
                 } else if ( rs->sr_err == LDAP_SASL_BIND_IN_PROGRESS ) {  
                         op->o_conn->c_sasl_bind_in_progress = 1;  
   
                 } else {  
                         if ( !BER_BVISNULL( &op->o_conn->c_sasl_bind_mech ) ) {  
                                 free( op->o_conn->c_sasl_bind_mech.bv_val );  
                                 BER_BVZERO( &op->o_conn->c_sasl_bind_mech );  
                         }  
                         op->o_conn->c_sasl_bind_in_progress = 0;  
                 }  
   
                 ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );  
   
                 goto cleanup;                  goto cleanup;
   
         } else {          } else {

Removed from v.1.189.2.5  
changed lines
  Added in v.1.189.2.6


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