From ba33a35baffe60092877123ef53fce1186c6f98f Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Mon, 18 May 2009 19:51:55 +0000 Subject: [PATCH] ITS#6109 --- CHANGES | 1 + servers/slapd/backend.c | 3 ++- servers/slapd/bconfig.c | 7 +++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGES b/CHANGES index a9819d7f9a..4bf93961a9 100644 --- a/CHANGES +++ b/CHANGES @@ -13,6 +13,7 @@ OpenLDAP 2.4.17 Engineering Fixed slapd moduleload with static backends and modules (ITS#6016) Fixed slapd normalization of updated schema attributes (ITS#5540) Fixed slapd pagedresults stacked control with overlays (ITS#6056) + Fixed slapd readonly restrictions (ITS#6109) Fixed slapd sending cancelled operations results (ITS#6103) Fixed slapd sockets usage on windows (ITS#6039) Fixed slapd-hdb freeing of already freed entries (ITS#6074) diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index 7e0dbce7d9..ac9dda235f 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -1296,7 +1296,8 @@ backend_check_restrictions( } if( ( restrictops & opflag ) - || ( exopflag && ( restrictops & exopflag ) ) ) { + || ( exopflag && ( restrictops & exopflag ) ) + || (( restrictops & SLAP_RESTRICT_READONLY ) && updateop )) { if( ( restrictops & SLAP_RESTRICT_OP_MASK) == SLAP_RESTRICT_OP_READS ) { rs->sr_text = "read operations restricted"; } else if ( restrictops & exopflag ) { diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index cd7f43ab89..569046000d 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -893,8 +893,7 @@ config_generic(ConfigArgs *c) { if ( !c->rvalue_vals ) rc = 1; break; case CFG_RO: - c->value_int = (c->be->be_restrictops & SLAP_RESTRICT_OP_WRITES) == - SLAP_RESTRICT_OP_WRITES; + c->value_int = (c->be->be_restrictops & SLAP_RESTRICT_READONLY); break; case CFG_AZPOLICY: c->value_string = ch_strdup( slap_sasl_getpolicy()); @@ -1466,9 +1465,9 @@ config_generic(ConfigArgs *c) { case CFG_RO: if(c->value_int) - c->be->be_restrictops |= SLAP_RESTRICT_OP_WRITES; + c->be->be_restrictops |= SLAP_RESTRICT_READONLY; else - c->be->be_restrictops &= ~SLAP_RESTRICT_OP_WRITES; + c->be->be_restrictops &= ~SLAP_RESTRICT_READONLY; break; case CFG_AZPOLICY: -- GitLab