version 1.147.2.43, 2009/01/26 20:53:59
|
version 1.147.2.44, 2009/01/30 18:49:57
|
Line 1
|
Line 1
|
/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.147.2.42 2009/01/22 00:01:13 kurt Exp $ */ |
/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.147.2.43 2009/01/26 20:53:59 quanah Exp $ */ |
/* syncprov.c - syncrepl provider */ |
/* syncprov.c - syncrepl provider */ |
/* This work is part of OpenLDAP Software <http://www.openldap.org/>. |
/* This work is part of OpenLDAP Software <http://www.openldap.org/>. |
* |
* |
Line 2123 syncprov_search_response( Operation *op,
|
Line 2123 syncprov_search_response( Operation *op,
|
op->o_tmpfree( cookie.bv_val, op->o_tmpmemctx ); |
op->o_tmpfree( cookie.bv_val, op->o_tmpmemctx ); |
|
|
/* Detach this Op from frontend control */ |
/* Detach this Op from frontend control */ |
ldap_pvt_thread_mutex_lock( &ss->ss_so->s_mutex ); |
|
ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex ); |
ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex ); |
|
|
/* But not if this connection was closed along the way */ |
/* But not if this connection was closed along the way */ |
if ( op->o_abandon ) { |
if ( op->o_abandon ) { |
ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex ); |
ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex ); |
ldap_pvt_thread_mutex_unlock( &ss->ss_so->s_mutex ); |
|
/* syncprov_ab_cleanup will free this syncop */ |
/* syncprov_ab_cleanup will free this syncop */ |
return SLAPD_ABANDON; |
return SLAPD_ABANDON; |
|
|
} else { |
} else { |
|
ldap_pvt_thread_mutex_lock( &ss->ss_so->s_mutex ); |
/* Turn off the refreshing flag */ |
/* Turn off the refreshing flag */ |
ss->ss_so->s_flags ^= PS_IS_REFRESHING; |
ss->ss_so->s_flags ^= PS_IS_REFRESHING; |
|
|
Line 2144 syncprov_search_response( Operation *op,
|
Line 2143 syncprov_search_response( Operation *op,
|
/* If there are queued responses, fire them off */ |
/* If there are queued responses, fire them off */ |
if ( ss->ss_so->s_res ) |
if ( ss->ss_so->s_res ) |
syncprov_qstart( ss->ss_so ); |
syncprov_qstart( ss->ss_so ); |
|
ldap_pvt_thread_mutex_unlock( &ss->ss_so->s_mutex ); |
} |
} |
ldap_pvt_thread_mutex_unlock( &ss->ss_so->s_mutex ); |
|
|
|
return LDAP_SUCCESS; |
return LDAP_SUCCESS; |
} |
} |