]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9953 Check for push replication
authorOndřej Kuzník <ondra@mistotebe.net>
Thu, 16 Feb 2023 14:50:43 +0000 (14:50 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 26 Apr 2023 20:08:25 +0000 (20:08 +0000)
contrib/slapd-modules/variant/variant.c
servers/slapd/overlays/constraint.c
servers/slapd/overlays/ppolicy.c
servers/slapd/overlays/unique.c

index 42d1c76acdd2a71b015c590f05cf62d5c46922bd..6acd2177d82ebd11d6f39b32005c85c6822fe291 100644 (file)
@@ -282,9 +282,7 @@ variant_op_add( Operation *op, SlapReply *rs )
        variantEntry_info *vei;
        int rc;
 
-       /* Replication always uses the rootdn */
-       if ( ov->passReplication && SLAPD_SYNC_IS_SYNCCONN(op->o_connid) &&
-                       be_isroot( op ) ) {
+       if ( ov->passReplication && be_shadow_update( op ) ) {
                return SLAP_CB_CONTINUE;
        }
 
@@ -431,9 +429,7 @@ variant_op_mod( Operation *op, SlapReply *rs )
        regmatch_t pmatch[10];
        int rc, nmatch = sizeof(pmatch) / sizeof(regmatch_t);
 
-       /* Replication always uses the rootdn */
-       if ( ov->passReplication && SLAPD_SYNC_IS_SYNCCONN(op->o_connid) &&
-                       be_isroot( op ) ) {
+       if ( ov->passReplication && be_shadow_update( op ) ) {
                return SLAP_CB_CONTINUE;
        }
 
index c4ae8fffc5cf7263d0c36e85c9a9d3c8422bd05f..f939b37762b947d82b917c0bde7af0c1afba1e42 100644 (file)
@@ -816,7 +816,7 @@ constraint_add( Operation *op, SlapReply *rs )
        int rc = 0;
        char *msg = NULL;
 
-       if (get_relax(op) || SLAPD_SYNC_IS_SYNCCONN( op->o_connid )) {
+       if ( get_relax(op) || be_shadow_update( op ) ) {
                return SLAP_CB_CONTINUE;
        }
 
@@ -958,7 +958,7 @@ constraint_update( Operation *op, SlapReply *rs )
        char *msg = NULL;
        int is_v;
 
-       if (get_relax(op) || SLAPD_SYNC_IS_SYNCCONN( op->o_connid )) {
+       if ( get_relax(op) || be_shadow_update( op ) ) {
                return SLAP_CB_CONTINUE;
        }
 
index ddbdf2be5a5951a9edd3f8bd273b128c33cc91f8..056cd754369cb3972d43edf8588b8c6d16e1237a 100644 (file)
@@ -2293,7 +2293,7 @@ ppolicy_add(
                return rs->sr_err;
 
        /* If this is a replica, assume the provider checked everything */
-       if ( SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) )
+       if ( be_shadow_update( op ) )
                return SLAP_CB_CONTINUE;
 
        ppolicy_get( op, op->ora_e, &pp );
@@ -2463,7 +2463,7 @@ ppolicy_modify( Operation *op, SlapReply *rs )
        /* If this is a replica, we may need to tweak some of the
         * provider's modifications. Otherwise, just pass it through.
         */
-       if ( SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) ) {
+       if ( be_shadow_update( op ) ) {
                Modifications **prev;
                Attribute *a_grace, *a_lock, *a_fail, *a_success;
 
index 53e013fd8f35395eeee047d66d69ebb702ffb51f..561d86da9e106554dc987f54007e60aeda4fa704 100644 (file)
@@ -1074,7 +1074,7 @@ unique_add(
        Debug(LDAP_DEBUG_TRACE, "==> unique_add <%s>\n",
              op->o_req_dn.bv_val );
 
-       if ( SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) || (
+       if ( be_shadow_update( op ) || (
                        get_relax(op) > SLAP_CONTROL_IGNORED
                        && access_allowed( op, op->ora_e,
                                slap_schema.si_ad_entry, NULL,
@@ -1226,7 +1226,7 @@ unique_modify(
                return rc;
        }
 
-       if ( SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) ) {
+       if ( be_shadow_update( op ) ) {
                return rc;
        }
        if ( get_relax(op) > SLAP_CONTROL_IGNORED
@@ -1366,7 +1366,7 @@ unique_modrdn(
        Debug(LDAP_DEBUG_TRACE, "==> unique_modrdn <%s> <%s>\n",
                op->o_req_dn.bv_val, op->orr_newrdn.bv_val );
 
-       if ( SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) ) {
+       if ( be_shadow_update( op ) ) {
                return rc;
        }
        if ( get_relax(op) > SLAP_CONTROL_IGNORED