]> git.sur5r.net Git - openldap/commitdiff
Make be_shadow_update more specific for syncrepl ops, since mirrormode
authorHoward Chu <hyc@openldap.org>
Thu, 20 Apr 2006 22:20:25 +0000 (22:20 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 20 Apr 2006 22:20:25 +0000 (22:20 +0000)
lets normal users write to a syncrepl database

servers/slapd/backend.c

index f054e506779869b28d4dff99642f0e24174e7102..978f94649c77ca0df27b387b06f25d63adc0e2fc 100644 (file)
@@ -687,7 +687,10 @@ be_slurp_update( Operation *op )
 int
 be_shadow_update( Operation *op )
 {
-       return ( SLAP_SYNC_SHADOW( op->o_bd ) ||
+       /* This assumes that all internal ops (connid == -1) on a syncrepl
+        * database are syncrepl operations.
+        */
+       return (( SLAP_SYNC_SHADOW( op->o_bd ) && op->o_connid == -1 ) ||
                ( SLAP_SHADOW( op->o_bd ) && be_isupdate_dn( op->o_bd, &op->o_ndn ) ) );
 }