From e50fc1833dbf530d47f25365b9863f7a26c62272 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Tue, 20 Dec 2005 23:25:44 +0000 Subject: [PATCH] Add UUIDPretty Likely should add UUID-named-entry test case to test026... --- servers/slapd/schema_init.c | 52 ++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/servers/slapd/schema_init.c b/servers/slapd/schema_init.c index d312571139..095f131814 100644 --- a/servers/slapd/schema_init.c +++ b/servers/slapd/schema_init.c @@ -2187,6 +2187,56 @@ UUIDValidate( return LDAP_SUCCESS; } +static int +UUIDPretty( + Syntax *syntax, + struct berval *in, + struct berval *out, + void *ctx ) +{ + int i; + int rc=LDAP_INVALID_SYNTAX; + + assert( in != NULL ); + assert( out != NULL ); + + if( in->bv_len != 36 ) return LDAP_INVALID_SYNTAX; + + out->bv_len = 36; + out->bv_val = slap_sl_malloc( out->bv_len + 1, ctx ); + + for( i=0; i<36; i++ ) { + switch(i) { + case 8: + case 13: + case 18: + case 23: + if( in->bv_val[i] != '-' ) { + goto handle_error; + } + out->bv_val[i] = '-'; + break; + + default: + if( !ASCII_HEX( in->bv_val[i]) ) { + goto handle_error; + } + out->bv_val[i] = TOLOWER( in->bv_val[i] ); + } + } + + rc = LDAP_SUCCESS; + out->bv_val[ out->bv_len ] = '\0'; + + if( 0 ) { +handle_error: + slap_sl_free( out->bv_val, ctx ); + out->bv_val = NULL; + } + + return rc; +} + int UUIDNormalize( slap_mask_t usage, @@ -3448,7 +3498,7 @@ static slap_syntax_defs_rec syntax_defs[] = { #endif {"( 1.3.6.1.1.16.1 DESC 'UUID' )", - 0, UUIDValidate, NULL}, + 0, UUIDValidate, UUIDPretty}, {"( 1.3.6.1.4.1.4203.666.11.2.1 DESC 'CSN' )", SLAP_SYNTAX_HIDE, csnValidate, NULL}, -- 2.39.5