From: Pierangelo Masarati Date: Wed, 16 Apr 2003 19:49:00 +0000 (+0000) Subject: use global bervals for TRUE/FALSE X-Git-Tag: OPENLDAP_REL_ENG_2_2_0ALPHA~346 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3a5cd746b79a675e6901fc6c9e22fa66d6547478;p=openldap use global bervals for TRUE/FALSE --- diff --git a/servers/slapd/filterentry.c b/servers/slapd/filterentry.c index 386ea48a15..49927c407a 100644 --- a/servers/slapd/filterentry.c +++ b/servers/slapd/filterentry.c @@ -467,12 +467,10 @@ test_ava_filter( } if ( hasSubordinates == LDAP_COMPARE_TRUE ) { - hs.bv_val = "TRUE"; - hs.bv_len = sizeof( "TRUE" ) - 1; + hs = slap_true_bv; } else if ( hasSubordinates == LDAP_COMPARE_FALSE ) { - hs.bv_val = "FALSE"; - hs.bv_len = sizeof( "FALSE" ) - 1; + hs = slap_false_bv; } else { return LDAP_OTHER; diff --git a/servers/slapd/globals.c b/servers/slapd/globals.c index 7c3442ec01..6176244710 100644 --- a/servers/slapd/globals.c +++ b/servers/slapd/globals.c @@ -22,3 +22,7 @@ const struct berval slap_empty_bv = BER_BVC(""); const struct berval slap_unknown_bv = BER_BVC("unknown"); +/* normalized boolean values */ +const struct berval slap_true_bv = BER_BVC("TRUE"); +const struct berval slap_false_bv = BER_BVC("FALSE"); + diff --git a/servers/slapd/operational.c b/servers/slapd/operational.c index bc842049ed..d03d4f3e16 100644 --- a/servers/slapd/operational.c +++ b/servers/slapd/operational.c @@ -43,24 +43,20 @@ Attribute * slap_operational_hasSubordinate( int hs ) { Attribute *a; - char *val; - ber_len_t len; + struct berval val; if ( hs ) { - val = "TRUE"; - len = sizeof( "TRUE" ) - 1; + val = slap_true_bv; } else { - val = "FALSE"; - len = sizeof( "FALSE" ) - 1; - + val = slap_false_bv; } a = ch_malloc( sizeof( Attribute ) ); a->a_desc = slap_schema.si_ad_hasSubordinates; a->a_vals = ch_malloc( 2 * sizeof( struct berval ) ); - ber_str2bv( val, len, 1, a->a_vals ); + ber_dupbv( &a->a_vals[0], &val ); a->a_vals[1].bv_val = NULL; a->a_nvals = a->a_vals; diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index ce50890671..fb4cceb805 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -510,6 +510,8 @@ LDAP_SLAPD_F (int) test_filter LDAP_P(( Operation *op, Entry *e, Filter *f )); LDAP_SLAPD_V( const struct berval ) slap_empty_bv; LDAP_SLAPD_V( const struct berval ) slap_unknown_bv; +LDAP_SLAPD_V( const struct berval ) slap_true_bv; +LDAP_SLAPD_V( const struct berval ) slap_false_bv; /* * index.c diff --git a/servers/slapd/schema_init.c b/servers/slapd/schema_init.c index e023f39dc2..dcb0ec32c8 100644 --- a/servers/slapd/schema_init.c +++ b/servers/slapd/schema_init.c @@ -822,11 +822,11 @@ booleanValidate( */ if( in->bv_len == 4 ) { - if( !memcmp( in->bv_val, "TRUE", 4 ) ) { + if( bvmatch( in, &slap_true_bv ) ) { return LDAP_SUCCESS; } } else if( in->bv_len == 5 ) { - if( !memcmp( in->bv_val, "FALSE", 5 ) ) { + if( bvmatch( in, &slap_false_bv ) ) { return LDAP_SUCCESS; } }