mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-11 06:43:09 -05:00
Moved unbind processing into connection_destroy. unbind handler is not needed.
This commit is contained in:
parent
f491c89387
commit
04c5711506
3 changed files with 11 additions and 9 deletions
|
|
@ -19,8 +19,8 @@ extern int ldap_back_bind LDAP_P(( BackendDB *bd,
|
|||
char *dn, int method, char* mech,
|
||||
struct berval *cred, char** edn ));
|
||||
|
||||
extern int ldap_back_unbind LDAP_P(( BackendDB *bd,
|
||||
Connection *conn, Operation *op ));
|
||||
extern int ldap_back_conn_destroy LDAP_P(( BackendDB *bd,
|
||||
Connection *conn ));
|
||||
|
||||
extern int ldap_back_search LDAP_P(( BackendDB *bd,
|
||||
Connection *conn, Operation *op,
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ ldap_back_initialize(
|
|||
bi->bi_db_destroy = ldap_back_db_destroy;
|
||||
|
||||
bi->bi_op_bind = ldap_back_bind;
|
||||
bi->bi_op_unbind = ldap_back_unbind;
|
||||
bi->bi_op_unbind = 0;
|
||||
bi->bi_op_search = ldap_back_search;
|
||||
bi->bi_op_compare = ldap_back_compare;
|
||||
bi->bi_op_modify = ldap_back_modify;
|
||||
|
|
@ -73,7 +73,7 @@ ldap_back_initialize(
|
|||
bi->bi_acl_group = 0;
|
||||
|
||||
bi->bi_connection_init = 0;
|
||||
bi->bi_connection_destroy = 0;
|
||||
bi->bi_connection_destroy = ldap_back_conn_destroy;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,24 +32,26 @@
|
|||
#include "back-ldap.h"
|
||||
|
||||
int
|
||||
ldap_back_unbind(
|
||||
ldap_back_conn_destroy(
|
||||
Backend *be,
|
||||
Connection *conn,
|
||||
Operation *op
|
||||
Connection *conn
|
||||
)
|
||||
{
|
||||
struct ldapinfo *li = (struct ldapinfo *) be->be_private;
|
||||
struct ldapconn *lc, *lp;
|
||||
|
||||
ldap_pvt_thread_mutex_lock( &li->conn_mutex );
|
||||
for (lc = li->lcs, lp = (struct ldapconn *)&li->lcs; lc;
|
||||
lp=lc, lc=lc->next)
|
||||
if (lc->conn == conn)
|
||||
if (lc->conn == conn) {
|
||||
lp->next = lc->next;
|
||||
break;
|
||||
}
|
||||
ldap_pvt_thread_mutex_unlock( &li->conn_mutex );
|
||||
|
||||
if (lc) {
|
||||
if (lc->bound)
|
||||
ldap_unbind(lc->ld);
|
||||
lp->next = lc->next;
|
||||
free(lc);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue