]> git.sur5r.net Git - openldap/commitdiff
rework be_isupdate accordingly to be_isroot
authorPierangelo Masarati <ando@openldap.org>
Tue, 6 Apr 2004 09:42:40 +0000 (09:42 +0000)
committerPierangelo Masarati <ando@openldap.org>
Tue, 6 Apr 2004 09:42:40 +0000 (09:42 +0000)
17 files changed:
servers/slapd/add.c
servers/slapd/back-bdb/delete.c
servers/slapd/back-bdb/modrdn.c
servers/slapd/back-ldap/add.c
servers/slapd/back-ldap/modify.c
servers/slapd/back-ldbm/delete.c
servers/slapd/back-ldbm/modrdn.c
servers/slapd/backend.c
servers/slapd/delete.c
servers/slapd/modify.c
servers/slapd/modrdn.c
servers/slapd/overlays/ppolicy.c
servers/slapd/overlays/rwm.c
servers/slapd/passwd.c
servers/slapd/proto-slap.h
servers/slapd/slapi/slapi_ops.c
servers/slapd/slapi/slapi_utils.c

index ca3cb67264e6475f3ac1f22a7a2b67b7fb9cd377..ffa94168b67ed0e6573c5bd4c6e1fe5986c8c817 100644 (file)
@@ -250,7 +250,7 @@ do_add( Operation *op, SlapReply *rs )
         */
        if ( op->o_bd->be_add ) {
                /* do the update here */
-               int repl_user = be_isupdate(op->o_bd, &op->o_ndn );
+               int repl_user = be_isupdate( op );
 #ifndef SLAPD_MULTIMASTER
                if ( !SLAP_SHADOW(op->o_bd) || repl_user )
 #else
index ed51c49f8c7d030b611e783b25fa2eb696bac5a2..4f9bff15a1d9a975f1cdcb67ad914e607cc24c36 100644 (file)
@@ -246,7 +246,7 @@ retry:      /* transaction retry */
                /* no parent, must be root to delete */
                if( ! be_isroot( op ) ) {
                        if ( be_issuffix( op->o_bd, (struct berval *)&slap_empty_bv )
-                               || be_isupdate( op->o_bd, &op->o_ndn ) ) {
+                               || be_isupdate( op ) ) {
                                p = (Entry *)&slap_entry_root;
 
                                /* check parent for "children" acl */
index f8a9271bd881b9626d2cb9530b86cf324df15bf6..a9b5a298021f07b6ce9c2411c3c6c334ad0c5aa4 100644 (file)
@@ -393,7 +393,7 @@ retry:      /* transaction retry */
                isroot = be_isroot( op );
                if ( ! isroot ) {
                        if ( be_issuffix( op->o_bd, (struct berval *)&slap_empty_bv )
-                               || be_isupdate( op->o_bd, &op->o_ndn ) ) {
+                               || be_isupdate( op ) ) {
 
                                p = (Entry *)&slap_entry_root;
 
@@ -608,7 +608,7 @@ retry:      /* transaction retry */
                        /* no parent, modrdn entry directly under root */
                        if ( ! isroot ) {
                                if ( be_issuffix( op->o_bd, (struct berval *)&slap_empty_bv )
-                                       || be_isupdate( op->o_bd, &op->o_ndn ) ) {
+                                       || be_isupdate( op ) ) {
                                        np = (Entry *)&slap_entry_root;
 
                                        /* check parent for "children" acl */
index a6d3d1fa3aec04bcc96b89f45ad9870898267b88..53e29906e62ea01e48d2e594990802efb2699a79 100644 (file)
@@ -90,7 +90,7 @@ ldap_back_add(
        dc.ctx = "addAttrDN";
 #endif
 
-       isupdate = be_isupdate( op->o_bd, &op->o_ndn );
+       isupdate = be_isupdate( op );
        for (i=0, a=op->oq_add.rs_e->e_attrs; a; a=a->a_next) {
                if ( !isupdate && a->a_desc->ad_type->sat_no_user_mod  ) {
                        continue;
index 6da70a1536c77668915115435a7756a7b1a57e65..b40664261fb7da98fcd11a49a7acc7abb30a2499 100644 (file)
@@ -91,7 +91,7 @@ ldap_back_modify(
        dc.ctx = "modifyAttrDN";
 #endif
 
-       isupdate = be_isupdate( op->o_bd, &op->o_ndn );
+       isupdate = be_isupdate( op );
        for (i=0, ml=op->oq_modify.rs_modlist; ml; ml=ml->sml_next) {
                int     is_oc = 0;
 
index 7221de57faec81b45f51c0eee1e4ac7a10edf145..7acf90ac896bb4b2e44aacb403b1c8d8ff75bfb4 100644 (file)
@@ -195,7 +195,7 @@ ldbm_back_delete(
        } else {
                /* no parent, must be root to delete */
                if( ! be_isroot( op ) ) {
-                       if ( be_issuffix( op->o_bd, (struct berval *)&slap_empty_bv ) || be_isupdate( op->o_bd, &op->o_ndn ) ) {
+                       if ( be_issuffix( op->o_bd, (struct berval *)&slap_empty_bv ) || be_isupdate( op ) ) {
                                p = (Entry *)&slap_entry_root;
                                
                                rc = access_allowed( op, p,
index 0fff70f7266d23701f6ce7f64aeb9835cfa27590..11085b853547f5c4eaf9d14d38025bff88b640dd 100644 (file)
@@ -248,7 +248,7 @@ ldbm_back_modrdn(
                /* no parent, must be root to modify rdn */
                isroot = be_isroot( op );
                if ( ! isroot ) {
-                       if ( be_issuffix( op->o_bd, (struct berval *)&slap_empty_bv ) || be_isupdate( op->o_bd, &op->o_ndn ) ) {
+                       if ( be_issuffix( op->o_bd, (struct berval *)&slap_empty_bv ) || be_isupdate( op ) ) {
                                int     can_access;
                                p = (Entry *)&slap_entry_root;
                                
@@ -422,7 +422,7 @@ ldbm_back_modrdn(
                        }
 
                        if ( ! isroot ) {
-                               if ( be_issuffix( op->o_bd, (struct berval *)&slap_empty_bv ) || be_isupdate( op->o_bd, &op->o_ndn ) ) {
+                               if ( be_issuffix( op->o_bd, (struct berval *)&slap_empty_bv ) || be_isupdate( op ) ) {
                                        int     can_access;
                                        np = (Entry *)&slap_entry_root;
                                
index f183274e51d5afcb96f631c08a08f03589939382..54249eebc400a67a246600458aaae67f52a67e40 100644 (file)
@@ -728,7 +728,13 @@ be_isroot_dn( Backend *be, struct berval *ndn )
 }
 
 int
-be_isupdate( Backend *be, struct berval *ndn )
+be_isupdate( Operation *op )
+{
+       return be_isupdate_dn( op->o_bd, &op->o_ndn );
+}
+
+int
+be_isupdate_dn( Backend *be, struct berval *ndn )
 {
        if ( !ndn->bv_len ) {
                return( 0 );
index b3bb25f2ab1df09745f89b8ca15363b4d5ed3799..4e701eaa313d8649fb5b6d3c5ffef79e5288fd13 100644 (file)
@@ -205,7 +205,7 @@ do_delete(
         */
        if ( op->o_bd->be_delete ) {
                /* do the update here */
-               int repl_user = be_isupdate( op->o_bd, &op->o_ndn );
+               int repl_user = be_isupdate( op );
 #ifndef SLAPD_MULTIMASTER
                if ( !SLAP_SHADOW(op->o_bd) || repl_user )
 #else
index 2de5f3d94c3c568686cdb4a9d5ed93abf61e319c..ea498a0f062b5dd50ecf6c09b6d660ac9e63cccc 100644 (file)
@@ -461,7 +461,7 @@ do_modify(
         */
        if ( op->o_bd->be_modify ) {
                /* do the update here */
-               int repl_user = be_isupdate( op->o_bd, &op->o_ndn );
+               int repl_user = be_isupdate( op );
 
                /* Multimaster slapd does not have to check for replicator dn
                 * because it accepts each modify request
index 6c133312c6984b40aed7cc235342eadf4fea0605..ae45b32a7cb7396c0fb42e7388196a76772c7a3e 100644 (file)
@@ -362,7 +362,7 @@ do_modrdn(
         */
        if ( op->o_bd->be_modrdn ) {
                /* do the update here */
-               int repl_user = be_isupdate( op->o_bd, &op->o_ndn );
+               int repl_user = be_isupdate( op );
 #ifndef SLAPD_MULTIMASTER
                if ( !SLAP_SHADOW(op->o_bd) || repl_user )
 #else
@@ -483,7 +483,7 @@ slap_modrdn2mods(
        assert( new_rdn != NULL );
        assert( !op->orr_deleteoldrdn || old_rdn != NULL );
 
-       repl_user = be_isupdate( op->o_bd, &op->o_ndn );
+       repl_user = be_isupdate( op );
 
        /* Add new attribute values to the entry */
        for ( a_cnt = 0; new_rdn[a_cnt]; a_cnt++ ) {
index e32585ccb28ff7f55330c1321f444102ffbb68cd..8aae33f110148f34c2f7a4071c202b0a2c9d024d 100644 (file)
@@ -1235,17 +1235,19 @@ ppolicy_add(
 static int
 ppolicy_modify( Operation *op, SlapReply *rs )
 {
-       slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
-       int                             i, rc, mod_pw_only, pwmod, pwmop, deladd, hsize = 0;
+       slap_overinst           *on = (slap_overinst *)op->o_bd->bd_info;
+       int                     i, rc, mod_pw_only, pwmod, pwmop, deladd,
+                               hsize = 0;
        PassPolicy              pp;
-       Modifications   *mods = NULL, *modtail, *ml, *delmod, *addmod;
+       Modifications           *mods = NULL, *modtail, *ml, *delmod, *addmod;
        Attribute               *pa, *ha, *ra, at;
-       int                             repl_user = be_isupdate( op->o_bd, &op->o_ndn );
+       int                     repl_user = be_isupdate( op );
        const char              *txt;
        pw_hist                 *tl = NULL, *p;
-       int                             zapReset, send_ctrl = 0;
+       int                     zapReset, send_ctrl = 0;
        Entry                   *e;
-       struct berval   newpw = { 0, NULL }, oldpw = { 0, NULL }, *bv, cr[2];
+       struct berval           newpw = { 0, NULL }, oldpw = { 0, NULL },
+                               *bv, cr[2];
        LDAPPasswordPolicyError pErr = PP_noError;
 
        op->o_bd->bd_info = (BackendInfo *)on->on_info;
index 28616c1accc45d5782bed6ae4aa7a6586fc50b59..56d6294ddc3df058d30f83903c4b4c7e0c8d0838 100644 (file)
@@ -100,7 +100,7 @@ rwm_add( Operation *op, SlapReply *rs )
        }
 
        /* Count number of attributes in entry */ 
-       isupdate = be_isupdate( op->o_bd, &op->o_ndn );
+       isupdate = be_isupdate( op );
        for ( i = 0, ap = &op->oq_add.rs_e->e_attrs; *ap; ) {
                struct berval   mapped;
                Attribute       *a;
index 49e315ab8b575e6583b5cd58ab96cfe28d7794d4..25d541d8957470d76f017ee8c2970d9885fe6b26 100644 (file)
@@ -110,7 +110,7 @@ int passwd_extop(
 
 #ifndef SLAPD_MULTIMASTER
        /* This does not apply to multi-master case */
-       if(!( !SLAP_SHADOW( op->o_bd ) || be_isupdate( op->o_bd, &op->o_ndn ))) {
+       if(!( !SLAP_SHADOW( op->o_bd ) || be_isupdate( op ))) {
                /* we SHOULD return a referral in this case */
                BerVarray defref = op->o_bd->be_update_refs
                        ? op->o_bd->be_update_refs : default_referral; 
index 07622ac5e6830ab00cf8f8317d8dbcf47209550c..d1c05ebc7a45c8da32fc109e78da02afef6cc8f0 100644 (file)
@@ -225,7 +225,8 @@ LDAP_SLAPD_F (int) be_issuffix LDAP_P(( Backend *be,
 LDAP_SLAPD_F (int) be_isroot LDAP_P(( Operation *op ));
 LDAP_SLAPD_F (int) be_isroot_dn LDAP_P(( Backend *be, struct berval *ndn ));
 LDAP_SLAPD_F (int) be_isroot_pw LDAP_P(( Operation *op ));
-LDAP_SLAPD_F (int) be_isupdate LDAP_P(( Backend *be, struct berval *ndn ));
+LDAP_SLAPD_F (int) be_isupdate LDAP_P(( Operation *op ));
+LDAP_SLAPD_F (int) be_isupdate_dn LDAP_P(( Backend *be, struct berval *ndn ));
 LDAP_SLAPD_F (struct berval *) be_root_dn LDAP_P(( Backend *be ));
 LDAP_SLAPD_F (int) be_entry_get_rw LDAP_P(( struct slap_op *o,
                struct berval *ndn, ObjectClass *oc,
index db3ecb7d2e63bf1e81046306c48c9805c4dfbb36..5d0c93675b230f8f82f3224eb1e66ebc2f303807 100644 (file)
@@ -444,7 +444,7 @@ slapi_int_ldapmod_to_entry(
        if ( op->o_bd == NULL ) {
                rc = LDAP_PARTIAL_RESULTS;
        } else {
-               int repl_user = be_isupdate( op->o_bd, &op->o_bd->be_rootdn );
+               int repl_user = be_isupdate_dn( op->o_bd, &op->o_bd->be_rootdn );
                if ( !op->o_bd->be_update_ndn.bv_len || repl_user ) {
                        int update = op->o_bd->be_update_ndn.bv_len;
                        char textbuf[SLAP_TEXT_BUFLEN];
@@ -557,7 +557,7 @@ slapi_delete_internal(
        op->o_ndn = pConn->c_ndn = op->o_bd->be_rootndn;
 
        if ( op->o_bd->be_delete ) {
-               int repl_user = be_isupdate( op->o_bd, &op->o_ndn );
+               int repl_user = be_isupdate( op );
                if ( !op->o_bd->be_update_ndn.bv_len || repl_user ) {
                        slap_callback cb = { NULL, slap_replog_cb, NULL, NULL };
                        if ( log_change ) op->o_callback = &cb;
@@ -636,7 +636,7 @@ slapi_int_add_entry_locked(
        op->oq_add.rs_e = *e;
 
        if ( op->o_bd->be_add ) {
-               int repl_user = be_isupdate( op->o_bd, &op->o_ndn );
+               int repl_user = be_isupdate( op );
                if ( !op->o_bd->be_update_ndn.bv_len || repl_user ) {
                        slap_callback cb = { NULL, slap_replog_cb, NULL, NULL };
                        if ( log_changes ) op->o_callback = &cb;
@@ -827,7 +827,7 @@ slapi_modrdn_internal(
        op->oq_modrdn.rs_deleteoldrdn = deloldrdn;
 
        if ( op->o_bd->be_modrdn ) {
-               int repl_user = be_isupdate( op->o_bd, &op->o_ndn );
+               int repl_user = be_isupdate( op );
                if ( !op->o_bd->be_update_ndn.bv_len || repl_user ) {
                        slap_callback cb = { NULL, slap_replog_cb, NULL, NULL };
                        if ( log_change ) op->o_callback = &cb;
@@ -1018,7 +1018,7 @@ slapi_modify_internal(
        op->oq_modify.rs_modlist = modlist;
 
        if ( op->o_bd->be_modify ) {
-               int repl_user = be_isupdate( op->o_bd, &op->o_ndn );
+               int repl_user = be_isupdate( op );
                if ( !op->o_bd->be_update_ndn.bv_len || repl_user ) {
                        int update = op->o_bd->be_update_ndn.bv_len;
                        const char *text = NULL;
index 1470ce5c308d1dc37780353102717828e62df7fd..e95c10779594425806b7f65c8fed76ba63e8b4cf 100644 (file)
@@ -2462,7 +2462,7 @@ int slapi_int_pblock_set_operation( Slapi_PBlock *pb, Operation *op )
 
        if ( op->o_bd != NULL ) {
                isRoot = be_isroot( op );
-               isUpdateDn = be_isupdate( op->o_bd, &op->o_ndn );
+               isUpdateDn = be_isupdate( op );
        }
 
        rc = slapi_int_pblock_set_backend( pb, op->o_bd );