]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#6198 backend: Simplify opflag handling
authorOndřej Kuzník <ondra@mistotebe.net>
Mon, 27 Apr 2026 13:23:07 +0000 (14:23 +0100)
committerQuanah Gibson-Mount <quanah@openldap.org>
Thu, 30 Apr 2026 16:41:28 +0000 (16:41 +0000)
servers/slapd/backend.c

index 64497b576ed90fd5cc8b4999e6b3d490c22044ff..2bdbc0e79cb7d138b932faef7963940ee8dae7c2 100644 (file)
@@ -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_SEARCH:
        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_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;
-               updateop++;
-               break;
-
+       case LDAP_REQ_ADD:
+       case LDAP_REQ_DELETE:
        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;