mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-28 17:47:33 -05:00
Add UUIDPretty
Likely should add UUID-named-entry test case to test026...
This commit is contained in:
parent
ccd7f1630b
commit
e50fc1833d
1 changed files with 51 additions and 1 deletions
|
|
@ -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},
|
||||
|
|
|
|||
Loading…
Reference in a new issue