X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foperation.c;h=4ca92d801b7ac8a5b48242b4fcf97f1c23d167cb;hb=f90ed5aef8f41ee90e1f67b0badbb793cb99f3ed;hp=404e20d888c1b48a5b4df5c1dac178e332ceb52d;hpb=4f60044d29214728d1ef188977a9d013f623fb63;p=openldap diff --git a/servers/slapd/operation.c b/servers/slapd/operation.c index 404e20d888..4ca92d801b 100644 --- a/servers/slapd/operation.c +++ b/servers/slapd/operation.c @@ -13,11 +13,7 @@ void slap_op_free( Operation *op ) { -#ifdef LDAP_DEBUG assert( op->o_next == NULL ); -#endif - - ldap_pvt_thread_mutex_lock( &op->o_abandonmutex ); if ( op->o_ber != NULL ) { ber_free( op->o_ber, 1 ); @@ -28,19 +24,24 @@ slap_op_free( Operation *op ) if ( op->o_ndn != NULL ) { free( op->o_ndn ); } + if ( op->o_authmech != NULL ) { + free( op->o_authmech ); + } + if ( op->o_ctrls != NULL ) { + ldap_controls_free( op->o_ctrls ); + } - ldap_pvt_thread_mutex_unlock( &op->o_abandonmutex ); ldap_pvt_thread_mutex_destroy( &op->o_abandonmutex ); + free( (char *) op ); } Operation * slap_op_alloc( BerElement *ber, - unsigned long msgid, - unsigned long tag, - int id, - int connid + ber_int_t msgid, + ber_tag_t tag, + ber_int_t id ) { Operation *op; @@ -48,19 +49,19 @@ slap_op_alloc( op = (Operation *) ch_calloc( 1, sizeof(Operation) ); ldap_pvt_thread_mutex_init( &op->o_abandonmutex ); + op->o_abandon = 0; + op->o_ber = ber; op->o_msgid = msgid; op->o_tag = tag; - op->o_abandon = 0; op->o_dn = NULL; op->o_ndn = NULL; + op->o_authmech = NULL; + op->o_ctrls = NULL; - ldap_pvt_thread_mutex_lock( ¤ttime_mutex ); - op->o_time = currenttime; - ldap_pvt_thread_mutex_unlock( ¤ttime_mutex ); + op->o_time = slap_get_time(); op->o_opid = id; - op->o_connid = connid; op->o_next = NULL; return( op );