mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-22 07:39:35 -05:00
ITS#8849 Introduce (un)pause callbacks to backends
This commit is contained in:
parent
0f4d656a57
commit
f4e824c8da
2 changed files with 39 additions and 2 deletions
|
|
@ -3270,13 +3270,46 @@ slap_sig_wake( int sig )
|
||||||
int
|
int
|
||||||
slap_pause_server( void )
|
slap_pause_server( void )
|
||||||
{
|
{
|
||||||
return ldap_pvt_thread_pool_pause( &connection_pool );
|
BackendInfo *bi;
|
||||||
|
int rc = LDAP_SUCCESS;
|
||||||
|
|
||||||
|
rc = ldap_pvt_thread_pool_pause( &connection_pool );
|
||||||
|
|
||||||
|
LDAP_STAILQ_FOREACH(bi, &backendInfo, bi_next) {
|
||||||
|
if ( bi->bi_pause ) {
|
||||||
|
rc = bi->bi_pause( bi );
|
||||||
|
if ( rc != LDAP_SUCCESS ) {
|
||||||
|
Debug( LDAP_DEBUG_ANY, "slap_pause_server: "
|
||||||
|
"bi_pause failed for backend %s\n",
|
||||||
|
bi->bi_type, 0, 0 );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
slap_unpause_server( void )
|
slap_unpause_server( void )
|
||||||
{
|
{
|
||||||
return ldap_pvt_thread_pool_resume( &connection_pool );
|
BackendInfo *bi;
|
||||||
|
int rc = LDAP_SUCCESS;
|
||||||
|
|
||||||
|
LDAP_STAILQ_FOREACH(bi, &backendInfo, bi_next) {
|
||||||
|
if ( bi->bi_unpause ) {
|
||||||
|
rc = bi->bi_unpause( bi );
|
||||||
|
if ( rc != LDAP_SUCCESS ) {
|
||||||
|
Debug( LDAP_DEBUG_ANY, "slap_unpause_server: "
|
||||||
|
"bi_unpause failed for backend %s\n",
|
||||||
|
bi->bi_type, 0, 0 );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rc = ldap_pvt_thread_pool_resume( &connection_pool );
|
||||||
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1992,6 +1992,8 @@ struct BackendDB {
|
||||||
typedef int (BI_bi_func) LDAP_P((BackendInfo *bi));
|
typedef int (BI_bi_func) LDAP_P((BackendInfo *bi));
|
||||||
typedef BI_bi_func BI_init;
|
typedef BI_bi_func BI_init;
|
||||||
typedef BI_bi_func BI_open;
|
typedef BI_bi_func BI_open;
|
||||||
|
typedef BI_bi_func BI_pause;
|
||||||
|
typedef BI_bi_func BI_unpause;
|
||||||
typedef BI_bi_func BI_close;
|
typedef BI_bi_func BI_close;
|
||||||
typedef BI_bi_func BI_destroy;
|
typedef BI_bi_func BI_destroy;
|
||||||
typedef int (BI_config) LDAP_P((BackendInfo *bi,
|
typedef int (BI_config) LDAP_P((BackendInfo *bi,
|
||||||
|
|
@ -2251,6 +2253,8 @@ struct BackendInfo {
|
||||||
BI_init *bi_init;
|
BI_init *bi_init;
|
||||||
BI_config *bi_config;
|
BI_config *bi_config;
|
||||||
BI_open *bi_open;
|
BI_open *bi_open;
|
||||||
|
BI_pause *bi_pause;
|
||||||
|
BI_unpause *bi_unpause;
|
||||||
BI_close *bi_close;
|
BI_close *bi_close;
|
||||||
BI_destroy *bi_destroy;
|
BI_destroy *bi_destroy;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue