Every quick mod to use a struct berval for e_dn/e_ndn. No bv_len yet.

This commit is contained in:
Kurt Zeilenga 2001-12-24 16:53:47 +00:00
parent 70194f9ad6
commit f6085d3f82
8 changed files with 50 additions and 42 deletions

View File

@ -26,7 +26,7 @@ bdb_attribute(
Connection *conn, Connection *conn,
Operation *op, Operation *op,
Entry *target, Entry *target,
const char *e_ndn, const char *entry_ndn,
AttributeDescription *entry_at, AttributeDescription *entry_at,
struct berval ***vals ) struct berval ***vals )
{ {
@ -39,7 +39,7 @@ bdb_attribute(
#ifdef NEW_LOGGING #ifdef NEW_LOGGING
LDAP_LOG(( "backend", LDAP_LEVEL_ARGS, 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, LDAP_LOG(( "backend", LDAP_LEVEL_ARGS,
"bdb_attribute: at: \"%s\"\n", entry_at_name)); "bdb_attribute: at: \"%s\"\n", entry_at_name));
LDAP_LOG(( "backend", LDAP_LEVEL_ARGS, LDAP_LOG(( "backend", LDAP_LEVEL_ARGS,
@ -48,7 +48,7 @@ bdb_attribute(
#else #else
Debug( LDAP_DEBUG_ARGS, Debug( LDAP_DEBUG_ARGS,
"=> bdb_attribute: gr dn: \"%s\"\n", "=> bdb_attribute: gr dn: \"%s\"\n",
e_ndn, 0, 0 ); entry_ndn, 0, 0 );
Debug( LDAP_DEBUG_ARGS, Debug( LDAP_DEBUG_ARGS,
"=> bdb_attribute: at: \"%s\"\n", "=> bdb_attribute: at: \"%s\"\n",
entry_at_name, 0, 0 ); entry_at_name, 0, 0 );
@ -58,23 +58,23 @@ bdb_attribute(
target ? target->e_ndn : "", 0, 0 ); target ? target->e_ndn : "", 0, 0 );
#endif #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 */ /* we already have a LOCKED copy of the entry */
e = target; e = target;
#ifdef NEW_LOGGING #ifdef NEW_LOGGING
LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1, LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1,
"bdb_attribute: target is LOCKED (%s)\n", "bdb_attribute: target is LOCKED (%s)\n",
e_ndn )); entry_ndn ));
#else #else
Debug( LDAP_DEBUG_ARGS, Debug( LDAP_DEBUG_ARGS,
"=> bdb_attribute: target is entry: \"%s\"\n", "=> bdb_attribute: target is entry: \"%s\"\n",
e_ndn, 0, 0 ); entry_ndn, 0, 0 );
#endif #endif
} else { } else {
/* can we find entry */ /* 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 ) { switch( rc ) {
case DB_NOTFOUND: case DB_NOTFOUND:
case 0: case 0:
@ -86,11 +86,11 @@ bdb_attribute(
#ifdef NEW_LOGGING #ifdef NEW_LOGGING
LDAP_LOG(( "backend", LDAP_LEVEL_INFO, LDAP_LOG(( "backend", LDAP_LEVEL_INFO,
"bdb_attribute: cannot find entry (%s)\n", "bdb_attribute: cannot find entry (%s)\n",
e_ndn )); entry_ndn ));
#else #else
Debug( LDAP_DEBUG_ACL, Debug( LDAP_DEBUG_ACL,
"=> bdb_attribute: cannot find entry: \"%s\"\n", "=> bdb_attribute: cannot find entry: \"%s\"\n",
e_ndn, 0, 0 ); entry_ndn, 0, 0 );
#endif #endif
return LDAP_NO_SUCH_OBJECT; return LDAP_NO_SUCH_OBJECT;
} }
@ -101,7 +101,7 @@ bdb_attribute(
#else #else
Debug( LDAP_DEBUG_ACL, Debug( LDAP_DEBUG_ACL,
"=> bdb_attribute: found entry: \"%s\"\n", "=> bdb_attribute: found entry: \"%s\"\n",
e_ndn, 0, 0 ); entry_ndn, 0, 0 );
#endif #endif
} }

View File

@ -45,7 +45,7 @@ void bdb_attr_index_destroy LDAP_P(( Avlnode *tree ));
int int
bdb_attribute LDAP_P(( Backend *be, Connection *conn, Operation *op, 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 )); struct berval ***vals ));
/* /*

View File

@ -26,7 +26,7 @@ ldbm_back_attribute(
Connection *conn, Connection *conn,
Operation *op, Operation *op,
Entry *target, Entry *target,
const char *e_ndn, const char *entry_ndn,
AttributeDescription *entry_at, AttributeDescription *entry_at,
struct berval ***vals ) struct berval ***vals )
{ {
@ -39,16 +39,16 @@ ldbm_back_attribute(
#ifdef NEW_LOGGING #ifdef NEW_LOGGING
LDAP_LOG(( "backend", LDAP_LEVEL_ARGS, 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, 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, LDAP_LOG(( "backend", LDAP_LEVEL_ARGS,
"ldbm_back_attribute: tr dn: \"%s\"\n", "ldbm_back_attribute: tr dn: \"%s\"\n",
target ? target->e_ndn : "" )); target ? target->e_ndn : "" ));
#else #else
Debug( LDAP_DEBUG_ARGS, Debug( LDAP_DEBUG_ARGS,
"=> ldbm_back_attribute: gr dn: \"%s\"\n", "=> ldbm_back_attribute: gr dn: \"%s\"\n",
e_ndn, 0, 0 ); entry_ndn, 0, 0 );
Debug( LDAP_DEBUG_ARGS, Debug( LDAP_DEBUG_ARGS,
"=> ldbm_back_attribute: at: \"%s\"\n", "=> ldbm_back_attribute: at: \"%s\"\n",
entry_at_name, 0, 0 ); entry_at_name, 0, 0 );
@ -58,31 +58,31 @@ ldbm_back_attribute(
target ? target->e_ndn : "", 0, 0 ); target ? target->e_ndn : "", 0, 0 );
#endif #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 */ /* we already have a LOCKED copy of the entry */
e = target; e = target;
#ifdef NEW_LOGGING #ifdef NEW_LOGGING
LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1, LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1,
"ldbm_back_attribute: target is LOCKED (%s)\n", "ldbm_back_attribute: target is LOCKED (%s)\n",
e_ndn )); entry_ndn ));
#else #else
Debug( LDAP_DEBUG_ARGS, Debug( LDAP_DEBUG_ARGS,
"=> ldbm_back_attribute: target is entry: \"%s\"\n", "=> ldbm_back_attribute: target is entry: \"%s\"\n",
e_ndn, 0, 0 ); entry_ndn, 0, 0 );
#endif #endif
} else { } else {
/* can we find entry with reader lock */ /* 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 #ifdef NEW_LOGGING
LDAP_LOG(( "backend", LDAP_LEVEL_INFO, LDAP_LOG(( "backend", LDAP_LEVEL_INFO,
"ldbm_back_attribute: cannot find entry (%s)\n", "ldbm_back_attribute: cannot find entry (%s)\n",
e_ndn )); entry_ndn ));
#else #else
Debug( LDAP_DEBUG_ACL, Debug( LDAP_DEBUG_ACL,
"=> ldbm_back_attribute: cannot find entry: \"%s\"\n", "=> ldbm_back_attribute: cannot find entry: \"%s\"\n",
e_ndn, 0, 0 ); entry_ndn, 0, 0 );
#endif #endif
return LDAP_NO_SUCH_OBJECT; return LDAP_NO_SUCH_OBJECT;
@ -90,11 +90,11 @@ ldbm_back_attribute(
#ifdef NEW_LOGGING #ifdef NEW_LOGGING
LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1, 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 #else
Debug( LDAP_DEBUG_ACL, Debug( LDAP_DEBUG_ACL,
"=> ldbm_back_attribute: found entry: \"%s\"\n", "=> ldbm_back_attribute: found entry: \"%s\"\n",
e_ndn, 0, 0 ); entry_ndn, 0, 0 );
#endif #endif
} }

View File

@ -84,7 +84,7 @@ extern int ldbm_back_group LDAP_P(( BackendDB *bd,
extern int ldbm_back_attribute LDAP_P(( BackendDB *bd, extern int ldbm_back_attribute LDAP_P(( BackendDB *bd,
Connection *conn, Operation *op, Connection *conn, Operation *op,
Entry *target, Entry *target,
const char* e_ndn, const char* entry_ndn,
AttributeDescription* entry_at, AttributeDescription* entry_at,
struct berval ***vals)); struct berval ***vals));

View File

@ -1057,15 +1057,17 @@ backend_attribute(
Connection *conn, Connection *conn,
Operation *op, Operation *op,
Entry *target, Entry *target,
const char *e_ndn, const char *entry_ndn,
AttributeDescription *entry_at, AttributeDescription *entry_at,
struct berval ***vals 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 */ /* 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)); (be->be_glueflags & SLAP_GLUE_INSTANCE));
if (be == NULL) { if (be == NULL) {
@ -1074,7 +1076,7 @@ backend_attribute(
} }
if( be->be_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 ); entry_at, vals );
} }

View File

@ -1078,21 +1078,22 @@ rdn_validate( const char * rdn )
void void
build_new_dn( char ** new_dn, build_new_dn( char ** new_dn,
const char *e_dn, const char * entry_dn,
const char * p_dn, const char * parent_dn,
const char * newrdn ) const char * newrdn )
{ {
if ( p_dn == NULL ) { if ( parent_dn == NULL ) {
*new_dn = ch_strdup( newrdn ); *new_dn = ch_strdup( newrdn );
return; 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 ); strcpy( *new_dn, newrdn );
strcat( *new_dn, "," ); strcat( *new_dn, "," );
strcat( *new_dn, p_dn ); strcat( *new_dn, parent_dn );
} }
#endif /* SLAP_DN_MIGRATION */ #endif /* SLAP_DN_MIGRATION */

View File

@ -201,7 +201,7 @@ LDAP_SLAPD_F (int) backend_attribute LDAP_P((BackendDB *be,
Connection *conn, Connection *conn,
Operation *op, Operation *op,
Entry *target, Entry *target,
const char *e_ndn, const char *entry_ndn,
AttributeDescription *entry_at, AttributeDescription *entry_at,
struct berval ***vals 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 (int) rdn_attrs LDAP_P(( const char * rdn, char ***ptypes, char ***pvals ));
LDAP_SLAPD_F (void) build_new_dn LDAP_P(( char ** new_dn, LDAP_SLAPD_F (void) build_new_dn LDAP_P(( char ** new_dn,
const char *e_dn, const char * entry_dn,
const char * p_dn, const char * parent_dn,
const char * newrdn )); const char * newrdn ));
#endif #endif

View File

@ -637,8 +637,13 @@ typedef struct slap_entry {
*/ */
ID e_id; ID e_id;
char *e_dn; /* DN of this entry */ struct berval e_name; /* name (DN) of this entry */
char *e_ndn; /* normalized 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 */ Attribute *e_attrs; /* list of attributes + values */
/* for use by the backend for any purpose */ /* for use by the backend for any purpose */