mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
Populate nvals via entry_decode
This commit is contained in:
parent
88990a5c6a
commit
793dada79c
@ -243,7 +243,6 @@ str2entry( char *s )
|
||||
nvalsp = NULL;
|
||||
nvals[0].bv_val = NULL;
|
||||
|
||||
#if 0
|
||||
if( ad->ad_type->sat_equality &&
|
||||
ad->ad_type->sat_equality->smr_match &&
|
||||
ad->ad_type->sat_syntax->ssyn_normalize )
|
||||
@ -259,13 +258,13 @@ str2entry( char *s )
|
||||
#else
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"<= str2entry NULL (ssyn_normalize %d)\n", rc, 0, 0 );
|
||||
#endif
|
||||
|
||||
entry_free( e );
|
||||
free( vals[0].bv_val );
|
||||
free( type );
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
nvals[1].bv_len = 0;
|
||||
nvals[1].bv_val = NULL;
|
||||
@ -273,7 +272,6 @@ str2entry( char *s )
|
||||
nvalsp = &nvals[0];
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef SLAP_NVALUES
|
||||
rc = attr_merge( e, ad, vals, nvalsp );
|
||||
@ -596,7 +594,7 @@ int entry_encode(Entry *e, struct berval *bv)
|
||||
*/
|
||||
int entry_decode(struct berval *bv, Entry **e)
|
||||
{
|
||||
int i, j;
|
||||
int i, j, count;
|
||||
int rc;
|
||||
Attribute *a;
|
||||
Entry *x;
|
||||
@ -669,7 +667,7 @@ int entry_decode(struct berval *bv, Entry **e)
|
||||
bptr = (BerVarray)(a+1);
|
||||
a->a_vals = bptr;
|
||||
a->a_flags = 0;
|
||||
j = entry_getlen(&ptr);
|
||||
count = j = entry_getlen(&ptr);
|
||||
|
||||
while (j) {
|
||||
i = entry_getlen(&ptr);
|
||||
@ -682,9 +680,37 @@ int entry_decode(struct berval *bv, Entry **e)
|
||||
bptr->bv_val = NULL;
|
||||
bptr->bv_len = 0;
|
||||
bptr++;
|
||||
|
||||
#ifdef SLAP_NVALUES
|
||||
if( count && ad->ad_type->sat_equality &&
|
||||
ad->ad_type->sat_equality->smr_match &&
|
||||
ad->ad_type->sat_syntax->ssyn_normalize )
|
||||
{
|
||||
a->a_nvals = ch_malloc((count+1)*sizeof(struct berval));
|
||||
|
||||
for(j=0; j<count; j++) {
|
||||
rc = ad->ad_type->sat_syntax->ssyn_normalize(
|
||||
ad->ad_type->sat_syntax,
|
||||
&a->a_vals[j], &a->a_nvals[j] );
|
||||
|
||||
if( rc ) {
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG( OPERATION, DETAIL1,
|
||||
"str2entry: NULL (ssyn_normalize %d)\n" , rc, 0, 0 );
|
||||
#else
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"<= str2entry NULL (ssyn_normalize %d)\n", rc, 0, 0 );
|
||||
#endif
|
||||
|
||||
return rc;
|
||||
}
|
||||
if (a)
|
||||
a->a_next = NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
if (a) a->a_next = NULL;
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG( OPERATION, DETAIL1, "entry_decode: %s\n", x->e_dn, 0, 0 );
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user