From 7b2dc4c05972527faa81e4429ee33abf77a4b407 Mon Sep 17 00:00:00 2001 From: Ralf Haferkamp Date: Wed, 23 Jun 2010 16:34:25 +0000 Subject: [PATCH] Send error to active psearches upon overlay removal --- servers/slapd/overlays/syncprov.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index 4c2a0868a9..baf3806b3c 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -3015,6 +3015,9 @@ syncprov_db_close( { slap_overinst *on = (slap_overinst *) be->bd_info; syncprov_info_t *si = (syncprov_info_t *)on->on_bi.bi_private; +#ifdef SLAP_CONFIG_DELETE + syncops *so, *sonext; +#endif /* SLAP_CONFIG_DELETE */ if ( slapMode & SLAP_TOOL_MODE ) { return 0; @@ -3035,6 +3038,19 @@ syncprov_db_close( syncprov_checkpoint( op, &rs, on ); } +#ifdef SLAP_CONFIG_DELETE + ldap_pvt_thread_mutex_lock( &si->si_ops_mutex ); + for ( so=si->si_ops, sonext=so; so; so=sonext ) { + SlapReply rs = {REP_RESULT}; + rs.sr_err = LDAP_UNAVAILABLE; + send_ldap_result( so->s_op, &rs ); + sonext=so->s_next; + syncprov_drop_psearch( so, 0); + } + si->si_ops=NULL; + ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex ); +#endif /* SLAP_CONFIG_DELETE */ + return 0; } -- 2.39.5