]> git.sur5r.net Git - openldap/commitdiff
ITS#4417 backglue must pass intermediate responses transparently.
authorHoward Chu <hyc@openldap.org>
Mon, 27 Feb 2006 09:20:55 +0000 (09:20 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 27 Feb 2006 09:20:55 +0000 (09:20 +0000)
syncprov must prevent send_ldap_result from being called for an
in-progress persistent search.

servers/slapd/backglue.c
servers/slapd/overlays/syncprov.c

index e05412f46281d1f68d62bde080d68c241d9ae773..e2fa8a2ff85b2d12cc356d97ad641b820d3072ab 100644 (file)
@@ -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:
index ae7780700fcbbf714d764aed2768585a2f62e68b..f697131834b6acc0ed829b27deb6f2742e09b1ac 100644 (file)
@@ -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