]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9691 Allow empty DB to host a persistent syncrepl session
authorOndřej Kuzník <ondra@mistotebe.net>
Mon, 13 Sep 2021 10:58:56 +0000 (11:58 +0100)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 15 Dec 2021 16:50:43 +0000 (16:50 +0000)
servers/slapd/overlays/syncprov.c

index df223523743d1ac25593eba4c918c78242b1aaf1..f89cfd3103aea1bbd8e264a55a8d291659f4ddbd 100644 (file)
@@ -3129,6 +3129,14 @@ syncprov_op_search( Operation *op, SlapReply *rs )
                op->o_callback = cb;
                ldap_pvt_thread_mutex_destroy( &so.s_mutex );
 
+               /* Special case, if client knows nothing, nor do we, keep going */
+               if ( srs->sr_state.numcsns == 0 && rs->sr_err == LDAP_NO_SUCH_OBJECT ) {
+                       Debug( LDAP_DEBUG_SYNC, "%s syncprov_op_search: "
+                                       "both our DB and client empty, ignoring NO_SUCH_OBJECT\n",
+                                       op->o_log_prefix );
+                       rs->sr_err = LDAP_SUCCESS;
+               }
+
                if ( rs->sr_err != LDAP_SUCCESS ) {
                        send_ldap_result( op, rs );
                        return rs->sr_err;