From 0967076503b0f79658759423d93f81171afddca9 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Fri, 30 Jan 2009 20:00:12 +0000 Subject: [PATCH] ITS#5857 --- CHANGES | 1 + servers/slapd/backend.c | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/CHANGES b/CHANGES index 7d1a801c34..c37ba2860d 100644 --- a/CHANGES +++ b/CHANGES @@ -19,6 +19,7 @@ OpenLDAP 2.4.14 Engineering Fixed slapd bconfig encoding incorrectly (ITS#5897) Fixed slapd connection assert (ITS#5835) Fixed slapd epoll handling (ITS#5886) + Fixed slapd frontend/backend options handling (ITS#5857) Fixed slapd syncrepl rename handling (ITS#5809) Fixed slapd syncrepl MMR when adding new server (ITS#5850) Fixed slapd syncrepl MMR with deleted entries (ITS#5843) diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index fd11c69c23..7e0dbce7d9 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -1005,13 +1005,19 @@ backend_check_restrictions( slap_mask_t requires; slap_mask_t opflag; slap_mask_t exopflag = 0; - slap_ssf_set_t *ssf; + slap_ssf_set_t ssfs, *ssf; int updateop = 0; int starttls = 0; int session = 0; + restrictops = frontendDB->be_restrictops; + requires = frontendDB->be_requires; + ssfs = frontendDB->be_ssf_set; + ssf = &ssfs; + if ( op->o_bd ) { - int rc = SLAP_CB_CONTINUE; + slap_ssf_t *fssf, *bssf; + int rc = SLAP_CB_CONTINUE, i; if ( op->o_bd->be_chk_controls ) { rc = ( *op->o_bd->be_chk_controls )( op, rs ); @@ -1025,14 +1031,13 @@ backend_check_restrictions( return rs->sr_err; } - restrictops = op->o_bd->be_restrictops; - requires = op->o_bd->be_requires; - ssf = &op->o_bd->be_ssf_set; - - } else { - restrictops = frontendDB->be_restrictops; - requires = frontendDB->be_requires; - ssf = &frontendDB->be_ssf_set; + restrictops |= op->o_bd->be_restrictops; + requires |= op->o_bd->be_requires; + bssf = &op->o_bd->be_ssf_set.sss_ssf; + fssf = &ssfs.sss_ssf; + for ( i=0; io_tag ) { -- 2.39.5