X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foperation.c;h=4ca92d801b7ac8a5b48242b4fcf97f1c23d167cb;hb=f90ed5aef8f41ee90e1f67b0badbb793cb99f3ed;hp=7848357a935b8c7639437ff75346c3117a07f99e;hpb=f999e1350d0f0f18f6a7b297cb57db398f963878;p=openldap diff --git a/servers/slapd/operation.c b/servers/slapd/operation.c index 7848357a93..4ca92d801b 100644 --- a/servers/slapd/operation.c +++ b/servers/slapd/operation.c @@ -15,8 +15,6 @@ slap_op_free( Operation *op ) { assert( op->o_next == NULL ); - ldap_pvt_thread_mutex_lock( &op->o_abandonmutex ); - if ( op->o_ber != NULL ) { ber_free( op->o_ber, 1 ); } @@ -26,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; @@ -46,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 );