From: Kurt Zeilenga Date: Mon, 24 Dec 2001 16:53:47 +0000 (+0000) Subject: Every quick mod to use a struct berval for e_dn/e_ndn. No bv_len yet. X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~548 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f6085d3f820d0fcea59928304a533e0524b56f48;p=openldap Every quick mod to use a struct berval for e_dn/e_ndn. No bv_len yet. --- diff --git a/servers/slapd/back-bdb/attribute.c b/servers/slapd/back-bdb/attribute.c index c98279871e..0bce1e0d5d 100644 --- a/servers/slapd/back-bdb/attribute.c +++ b/servers/slapd/back-bdb/attribute.c @@ -26,7 +26,7 @@ bdb_attribute( Connection *conn, Operation *op, Entry *target, - const char *e_ndn, + const char *entry_ndn, AttributeDescription *entry_at, struct berval ***vals ) { @@ -39,7 +39,7 @@ bdb_attribute( #ifdef NEW_LOGGING LDAP_LOG(( "backend", LDAP_LEVEL_ARGS, - "bdb_attribute: gr dn: \"%s\"\n", e_ndn )); + "bdb_attribute: gr dn: \"%s\"\n", entry_ndn )); LDAP_LOG(( "backend", LDAP_LEVEL_ARGS, "bdb_attribute: at: \"%s\"\n", entry_at_name)); LDAP_LOG(( "backend", LDAP_LEVEL_ARGS, @@ -48,7 +48,7 @@ bdb_attribute( #else Debug( LDAP_DEBUG_ARGS, "=> bdb_attribute: gr dn: \"%s\"\n", - e_ndn, 0, 0 ); + entry_ndn, 0, 0 ); Debug( LDAP_DEBUG_ARGS, "=> bdb_attribute: at: \"%s\"\n", entry_at_name, 0, 0 ); @@ -58,23 +58,23 @@ bdb_attribute( target ? target->e_ndn : "", 0, 0 ); #endif - if (target != NULL && strcmp(target->e_ndn, e_ndn) == 0) { + if (target != NULL && strcmp(target->e_ndn, entry_ndn) == 0) { /* we already have a LOCKED copy of the entry */ e = target; #ifdef NEW_LOGGING LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1, "bdb_attribute: target is LOCKED (%s)\n", - e_ndn )); + entry_ndn )); #else Debug( LDAP_DEBUG_ARGS, "=> bdb_attribute: target is entry: \"%s\"\n", - e_ndn, 0, 0 ); + entry_ndn, 0, 0 ); #endif } else { /* can we find entry */ - rc = bdb_dn2entry( be, NULL, e_ndn, &e, NULL, 0 ); + rc = bdb_dn2entry( be, NULL, entry_ndn, &e, NULL, 0 ); switch( rc ) { case DB_NOTFOUND: case 0: @@ -86,11 +86,11 @@ bdb_attribute( #ifdef NEW_LOGGING LDAP_LOG(( "backend", LDAP_LEVEL_INFO, "bdb_attribute: cannot find entry (%s)\n", - e_ndn )); + entry_ndn )); #else Debug( LDAP_DEBUG_ACL, "=> bdb_attribute: cannot find entry: \"%s\"\n", - e_ndn, 0, 0 ); + entry_ndn, 0, 0 ); #endif return LDAP_NO_SUCH_OBJECT; } @@ -101,7 +101,7 @@ bdb_attribute( #else Debug( LDAP_DEBUG_ACL, "=> bdb_attribute: found entry: \"%s\"\n", - e_ndn, 0, 0 ); + entry_ndn, 0, 0 ); #endif } diff --git a/servers/slapd/back-bdb/proto-bdb.h b/servers/slapd/back-bdb/proto-bdb.h index 64b682689d..88e9bb87f1 100644 --- a/servers/slapd/back-bdb/proto-bdb.h +++ b/servers/slapd/back-bdb/proto-bdb.h @@ -45,7 +45,7 @@ void bdb_attr_index_destroy LDAP_P(( Avlnode *tree )); int bdb_attribute LDAP_P(( Backend *be, Connection *conn, Operation *op, - Entry *target, const char *e_ndn, AttributeDescription *entry_at, + Entry *target, const char *entry_ndn, AttributeDescription *entry_at, struct berval ***vals )); /* diff --git a/servers/slapd/back-ldbm/attribute.c b/servers/slapd/back-ldbm/attribute.c index 9dffdce630..e07d1ea27b 100644 --- a/servers/slapd/back-ldbm/attribute.c +++ b/servers/slapd/back-ldbm/attribute.c @@ -26,7 +26,7 @@ ldbm_back_attribute( Connection *conn, Operation *op, Entry *target, - const char *e_ndn, + const char *entry_ndn, AttributeDescription *entry_at, struct berval ***vals ) { @@ -39,16 +39,16 @@ ldbm_back_attribute( #ifdef NEW_LOGGING LDAP_LOG(( "backend", LDAP_LEVEL_ARGS, - "ldbm_back_attribute: gr dn: \"%s\"\n", e_ndn )); + "ldbm_back_attribute: gr dn: \"%s\"\n", entry_ndn )); LDAP_LOG(( "backend", LDAP_LEVEL_ARGS, - "ldbm_back_attribute: at: \"%s\"\n", entry_at_name)); + "ldbm_back_attribute: at: \"%s\"\n", entry_at_name)); LDAP_LOG(( "backend", LDAP_LEVEL_ARGS, - "ldbm_back_attribute: tr dn: \"%s\"\n", - target ? target->e_ndn : "" )); + "ldbm_back_attribute: tr dn: \"%s\"\n", + target ? target->e_ndn : "" )); #else Debug( LDAP_DEBUG_ARGS, "=> ldbm_back_attribute: gr dn: \"%s\"\n", - e_ndn, 0, 0 ); + entry_ndn, 0, 0 ); Debug( LDAP_DEBUG_ARGS, "=> ldbm_back_attribute: at: \"%s\"\n", entry_at_name, 0, 0 ); @@ -58,31 +58,31 @@ ldbm_back_attribute( target ? target->e_ndn : "", 0, 0 ); #endif - if (target != NULL && strcmp(target->e_ndn, e_ndn) == 0) { + if (target != NULL && strcmp(target->e_ndn, entry_ndn) == 0) { /* we already have a LOCKED copy of the entry */ e = target; #ifdef NEW_LOGGING LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1, - "ldbm_back_attribute: target is LOCKED (%s)\n", - e_ndn )); + "ldbm_back_attribute: target is LOCKED (%s)\n", + entry_ndn )); #else Debug( LDAP_DEBUG_ARGS, "=> ldbm_back_attribute: target is entry: \"%s\"\n", - e_ndn, 0, 0 ); + entry_ndn, 0, 0 ); #endif } else { /* can we find entry with reader lock */ - if ((e = dn2entry_r(be, e_ndn, NULL )) == NULL) { + if ((e = dn2entry_r(be, entry_ndn, NULL )) == NULL) { #ifdef NEW_LOGGING LDAP_LOG(( "backend", LDAP_LEVEL_INFO, - "ldbm_back_attribute: cannot find entry (%s)\n", - e_ndn )); + "ldbm_back_attribute: cannot find entry (%s)\n", + entry_ndn )); #else Debug( LDAP_DEBUG_ACL, "=> ldbm_back_attribute: cannot find entry: \"%s\"\n", - e_ndn, 0, 0 ); + entry_ndn, 0, 0 ); #endif return LDAP_NO_SUCH_OBJECT; @@ -90,11 +90,11 @@ ldbm_back_attribute( #ifdef NEW_LOGGING LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1, - "ldbm_back_attribute: found entry (%s)\n", e_ndn )); + "ldbm_back_attribute: found entry (%s)\n", entry_ndn )); #else Debug( LDAP_DEBUG_ACL, "=> ldbm_back_attribute: found entry: \"%s\"\n", - e_ndn, 0, 0 ); + entry_ndn, 0, 0 ); #endif } diff --git a/servers/slapd/back-ldbm/external.h b/servers/slapd/back-ldbm/external.h index 243b1bc1ea..9e1e33a635 100644 --- a/servers/slapd/back-ldbm/external.h +++ b/servers/slapd/back-ldbm/external.h @@ -84,7 +84,7 @@ extern int ldbm_back_group LDAP_P(( BackendDB *bd, extern int ldbm_back_attribute LDAP_P(( BackendDB *bd, Connection *conn, Operation *op, Entry *target, - const char* e_ndn, + const char* entry_ndn, AttributeDescription* entry_at, struct berval ***vals)); diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index 2e06be0309..c44efa33b4 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -1057,15 +1057,17 @@ backend_attribute( Connection *conn, Operation *op, Entry *target, - const char *e_ndn, + const char *entry_ndn, AttributeDescription *entry_at, struct berval ***vals ) { - if( target == NULL || strcmp( target->e_ndn, e_ndn ) != 0 ) { + if( target == NULL || + strcmp( target->e_ndn, entry_ndn ) != 0 ) + { /* we won't attempt to send it to a different backend */ - be = select_backend(e_ndn, 0, + be = select_backend(entry_ndn, 0, (be->be_glueflags & SLAP_GLUE_INSTANCE)); if (be == NULL) { @@ -1074,7 +1076,7 @@ backend_attribute( } if( be->be_attribute ) { - return be->be_attribute( be, conn, op, target, e_ndn, + return be->be_attribute( be, conn, op, target, entry_ndn, entry_at, vals ); } diff --git a/servers/slapd/dn.c b/servers/slapd/dn.c index ad0126807e..ed81bf5a14 100644 --- a/servers/slapd/dn.c +++ b/servers/slapd/dn.c @@ -1078,21 +1078,22 @@ rdn_validate( const char * rdn ) void build_new_dn( char ** new_dn, - const char *e_dn, - const char * p_dn, + const char * entry_dn, + const char * parent_dn, const char * newrdn ) { - if ( p_dn == NULL ) { + if ( parent_dn == NULL ) { *new_dn = ch_strdup( newrdn ); return; } - *new_dn = (char *) ch_malloc( strlen( p_dn ) + strlen( newrdn ) + 3 ); + *new_dn = (char *) ch_malloc( + strlen( parent_dn ) + strlen( newrdn ) + 3 ); strcpy( *new_dn, newrdn ); strcat( *new_dn, "," ); - strcat( *new_dn, p_dn ); + strcat( *new_dn, parent_dn ); } #endif /* SLAP_DN_MIGRATION */ diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index dc338a64b4..f6f019ffef 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -201,7 +201,7 @@ LDAP_SLAPD_F (int) backend_attribute LDAP_P((BackendDB *be, Connection *conn, Operation *op, Entry *target, - const char *e_ndn, + const char *entry_ndn, AttributeDescription *entry_at, struct berval ***vals )); @@ -365,8 +365,8 @@ LDAP_SLAPD_F (char *) rdn_attr_type LDAP_P(( const char * rdn )); LDAP_SLAPD_F (int) rdn_attrs LDAP_P(( const char * rdn, char ***ptypes, char ***pvals )); LDAP_SLAPD_F (void) build_new_dn LDAP_P(( char ** new_dn, - const char *e_dn, - const char * p_dn, + const char * entry_dn, + const char * parent_dn, const char * newrdn )); #endif diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index 86e828de5d..14188aa8de 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -637,8 +637,13 @@ typedef struct slap_entry { */ ID e_id; - char *e_dn; /* DN of this entry */ - char *e_ndn; /* normalized DN of this entry */ + struct berval e_name; /* name (DN) of this entry */ + struct berval e_nname; /* normalized name (DN) of this entry */ + + /* for migration purposes */ +#define e_dn e_name.bv_val +#define e_ndn e_name.bv_val + Attribute *e_attrs; /* list of attributes + values */ /* for use by the backend for any purpose */