X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fslapdn.c;h=af10ce0045f12594285c3057b513810116a35d41;hb=7fe91339dfd08d6c4168c8493f5c1f0faca6ba54;hp=0119e7fab595d4cf500938204fcb1ea57db3e378;hpb=8e19437ddc4a7364f5e4784635a75486de2ad798;p=openldap diff --git a/servers/slapd/slapdn.c b/servers/slapd/slapdn.c index 0119e7fab5..af10ce0045 100644 --- a/servers/slapd/slapdn.c +++ b/servers/slapd/slapdn.c @@ -1,6 +1,7 @@ +/* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2004-2005 The OpenLDAP Foundation. + * Copyright 2004-2009 The OpenLDAP Foundation. * Portions Copyright 2004 Pierangelo Masarati. * All rights reserved. * @@ -46,12 +47,26 @@ slapdn( int argc, char **argv ) argc -= optind; for ( ; argc--; argv++ ) { - struct berval dn, pdn, ndn; + struct berval dn, + pdn = BER_BVNULL, + ndn = BER_BVNULL; ber_str2bv( argv[ 0 ], 0, 0, &dn ); - rc = dnPrettyNormal( NULL, &dn, - &pdn, &ndn, NULL ); + switch ( dn_mode ) { + case SLAP_TOOL_LDAPDN_PRETTY: + rc = dnPretty( NULL, &dn, &pdn, NULL ); + break; + + case SLAP_TOOL_LDAPDN_NORMAL: + rc = dnNormalize( 0, NULL, NULL, &dn, &ndn, NULL ); + break; + + default: + rc = dnPrettyNormal( NULL, &dn, &pdn, &ndn, NULL ); + break; + } + if ( rc != LDAP_SUCCESS ) { fprintf( stderr, "DN: <%s> check failed %d (%s)\n", dn.bv_val, rc, @@ -85,7 +100,8 @@ slapdn( int argc, char **argv ) } } - slap_tool_destroy(); + if ( slap_tool_destroy()) + rc = EXIT_FAILURE; return rc; }