From: Ondřej Kuzník Date: Thu, 16 Feb 2023 14:50:43 +0000 (+0000) Subject: ITS#9953 Check for push replication X-Git-Tag: OPENLDAP_REL_ENG_2_5_15~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a25124dcc6ea4e182d46b1ff4b621c3f3ae9b533;p=thirdparty%2Fopenldap.git ITS#9953 Check for push replication --- diff --git a/contrib/slapd-modules/variant/variant.c b/contrib/slapd-modules/variant/variant.c index edf4832843..d34b9d2c37 100644 --- a/contrib/slapd-modules/variant/variant.c +++ b/contrib/slapd-modules/variant/variant.c @@ -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; } diff --git a/servers/slapd/overlays/constraint.c b/servers/slapd/overlays/constraint.c index 1feff7a8e0..c691f0b807 100644 --- a/servers/slapd/overlays/constraint.c +++ b/servers/slapd/overlays/constraint.c @@ -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; } diff --git a/servers/slapd/overlays/ppolicy.c b/servers/slapd/overlays/ppolicy.c index a3f2e709aa..cc4e60c5c6 100644 --- a/servers/slapd/overlays/ppolicy.c +++ b/servers/slapd/overlays/ppolicy.c @@ -2223,7 +2223,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 ); @@ -2390,7 +2390,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; diff --git a/servers/slapd/overlays/unique.c b/servers/slapd/overlays/unique.c index 7a7c8fb540..7ff128a28f 100644 --- a/servers/slapd/overlays/unique.c +++ b/servers/slapd/overlays/unique.c @@ -1073,7 +1073,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, @@ -1225,7 +1225,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 @@ -1365,7 +1365,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