From: Ondřej Kuzník Date: Mon, 13 Sep 2021 10:58:56 +0000 (+0100) Subject: ITS#9691 Allow empty DB to host a persistent syncrepl session X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e3184763cfaf624d8a0121fc995a47a1342692d;p=thirdparty%2Fopenldap.git ITS#9691 Allow empty DB to host a persistent syncrepl session --- diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index df22352374..f89cfd3103 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -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;