From 7b5528d68bd2ce658c9994652a775e545eea5e41 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Mon, 27 Feb 2006 09:20:55 +0000 Subject: [PATCH] ITS#4417 backglue must pass intermediate responses transparently. syncprov must prevent send_ldap_result from being called for an in-progress persistent search. --- servers/slapd/backglue.c | 1 + servers/slapd/overlays/syncprov.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/servers/slapd/backglue.c b/servers/slapd/backglue.c index e05412f462..e2fa8a2ff8 100644 --- a/servers/slapd/backglue.c +++ b/servers/slapd/backglue.c @@ -93,6 +93,7 @@ glue_op_response ( Operation *op, SlapReply *rs ) switch(rs->sr_type) { case REP_SEARCH: case REP_SEARCHREF: + case REP_INTERMEDIATE: return SLAP_CB_CONTINUE; default: diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index ae7780700f..f697131834 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -1784,6 +1784,9 @@ syncprov_detach_op( Operation *op, syncops *so, slap_overinst *on ) LDAP_STAILQ_INSERT_TAIL( &op->o_conn->c_ops, op2, o_next ); so->s_flags |= PS_IS_DETACHED; ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex ); + + /* Prevent anyone else from trying to send a result for this op */ + op->o_abandon = 1; } static int -- 2.39.5