]> 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>
Fri, 17 Feb 2023 21:07:16 +0000 (21:07 +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 7913f35c09c40491b7c0523b5354b5591da96a7f..0271dde6a7e62cce60dd6bc68802e6b14c1c55d3 100644 (file)
@@ -2504,7 +2504,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 );
@@ -2674,7 +2674,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 e71fabfd2fea8a583860d0d13e55572f74a484b0..147fd00d7130095985b4075cfe0f28d7404c2275 100644 (file)
@@ -1077,7 +1077,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,
@@ -1229,7 +1229,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
@@ -1369,7 +1369,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