X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fentry.c;h=c389f6b0a21f3151679e738a66694ebc2e078585;hb=a17df0e810578d593808c6afeb0cdea55a65633c;hp=9441de24e6317c7b18a2425ceab42870e89bac20;hpb=014393dfa21a38de850df34db12e3d054e10b581;p=openldap diff --git a/servers/slapd/entry.c b/servers/slapd/entry.c index 9441de24e6..c389f6b0a2 100644 --- a/servers/slapd/entry.c +++ b/servers/slapd/entry.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2005 The OpenLDAP Foundation. + * Copyright 1998-2006 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -216,10 +216,10 @@ str2entry2( char *s, int checkvals ) goto fail; } - rc = slap_bv2undef_ad( type+i, &ad, &text ); + rc = slap_bv2undef_ad( type+i, &ad, &text, 0 ); if( rc != LDAP_SUCCESS ) { Debug( LDAP_DEBUG_ANY, - "<= str2entry: str2undef_ad(%s): %s\n", + "<= str2entry: slap_str2undef_ad(%s): %s\n", type[i].bv_val, text, 0 ); goto fail; } @@ -268,15 +268,24 @@ str2entry2( char *s, int checkvals ) slap_syntax_transform_func *pretty = ad->ad_type->sat_syntax->ssyn_pretty; - if( pretty ) { + if ( pretty ) { +#ifdef SLAP_ORDERED_PRETTYNORM + rc = ordered_value_pretty( ad, + &vals[i], &pval, NULL ); +#else /* ! SLAP_ORDERED_PRETTYNORM */ rc = pretty( ad->ad_type->sat_syntax, &vals[i], &pval, NULL ); +#endif /* ! SLAP_ORDERED_PRETTYNORM */ - } else if( validate ) { + } else if ( validate ) { /* * validate value per syntax */ +#ifdef SLAP_ORDERED_PRETTYNORM + rc = ordered_value_validate( ad, &vals[i], LDAP_MOD_ADD ); +#else /* ! SLAP_ORDERED_PRETTYNORM */ rc = validate( ad->ad_type->sat_syntax, &vals[i] ); +#endif /* ! SLAP_ORDERED_PRETTYNORM */ } else { Debug( LDAP_DEBUG_ANY, @@ -303,16 +312,24 @@ str2entry2( char *s, int checkvals ) } } - if( ad->ad_type->sat_equality && + if ( ad->ad_type->sat_equality && ad->ad_type->sat_equality->smr_normalize ) { +#ifdef SLAP_ORDERED_PRETTYNORM + rc = ordered_value_normalize( + SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX, + ad, + ad->ad_type->sat_equality, + &vals[i], &nvals[i], NULL ); +#else /* ! SLAP_ORDERED_PRETTYNORM */ rc = ad->ad_type->sat_equality->smr_normalize( SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX, ad->ad_type->sat_syntax, ad->ad_type->sat_equality, &vals[i], &nvals[i], NULL ); +#endif /* ! SLAP_ORDERED_PRETTYNORM */ - if( rc ) { + if ( rc ) { Debug( LDAP_DEBUG_ANY, "<= str2entry NULL (smr_normalize %d)\n", rc, 0, 0 ); goto fail; @@ -726,11 +743,11 @@ int entry_decode(struct berval *bv, Entry **e) if( rc != LDAP_SUCCESS ) { Debug( LDAP_DEBUG_TRACE, "<= entry_decode: str2ad(%s): %s\n", ptr, text, 0 ); - rc = slap_bv2undef_ad( &bv, &ad, &text ); + rc = slap_bv2undef_ad( &bv, &ad, &text, 0 ); if( rc != LDAP_SUCCESS ) { Debug( LDAP_DEBUG_ANY, - "<= entry_decode: str2undef_ad(%s): %s\n", + "<= entry_decode: slap_str2undef_ad(%s): %s\n", ptr, text, 0 ); return rc; }