From c28108fbdff380b64ecafd9859ba6d29ed5cbabd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Mon, 27 Apr 2026 14:23:07 +0100 Subject: [PATCH] ITS#6198 backend: Simplify opflag handling --- servers/slapd/backend.c | 47 ++++++++++++++--------------------------- 1 file changed, 16 insertions(+), 31 deletions(-) diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index 64497b576e..2bdbc0e79c 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -1135,28 +1135,23 @@ backend_check_restrictions( } } + opflag = SLAP_OP2RESTRICT(slap_req2op(op->o_tag)); switch( op->o_tag ) { - case LDAP_REQ_ADD: - opflag = SLAP_RESTRICT_OP_ADD; - updateop++; - break; + case LDAP_REQ_UNBIND: + opflag = 0; + /* FALLTHRU */ case LDAP_REQ_BIND: - opflag = SLAP_RESTRICT_OP_BIND; session++; break; - case LDAP_REQ_COMPARE: - opflag = SLAP_RESTRICT_OP_COMPARE; - break; - case LDAP_REQ_DELETE: - updateop++; - opflag = SLAP_RESTRICT_OP_DELETE; - break; - case LDAP_REQ_EXTENDED: - opflag = SLAP_RESTRICT_OP_EXTENDED; + case LDAP_REQ_SEARCH: + case LDAP_REQ_COMPARE: + break; + + case LDAP_REQ_EXTENDED: if( !opdata ) { /* treat unspecified as a modify */ - opflag = SLAP_RESTRICT_OP_MODIFY; + opflag |= SLAP_RESTRICT_OP_MODIFY; updateop++; break; } @@ -1184,26 +1179,16 @@ backend_check_restrictions( break; } + opflag |= SLAP_RESTRICT_OP_MODIFY; + /* FALLTHRU */ /* treat everything else as a modify */ - opflag = SLAP_RESTRICT_OP_MODIFY; + case LDAP_REQ_ADD: + case LDAP_REQ_DELETE: + case LDAP_REQ_MODIFY: + case LDAP_REQ_RENAME: updateop++; break; - case LDAP_REQ_MODIFY: - updateop++; - opflag = SLAP_RESTRICT_OP_MODIFY; - break; - case LDAP_REQ_RENAME: - updateop++; - opflag = SLAP_RESTRICT_OP_RENAME; - break; - case LDAP_REQ_SEARCH: - opflag = SLAP_RESTRICT_OP_SEARCH; - break; - case LDAP_REQ_UNBIND: - session++; - opflag = 0; - break; default: rs->sr_text = "restrict operations internal error"; rs->sr_err = LDAP_OTHER;