X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fslapdn.c;h=d3e34fc7842642774d9b7990a30b2be545632442;hb=01c38dd6ea7f02cfdc9f77f9299771a4ef6ce968;hp=e0a40d6541de3de79c80a2d6ddce77b7dc16b1d5;hpb=2919bc09ac89efb58f9c23ddf49d471452157384;p=openldap diff --git a/servers/slapd/slapdn.c b/servers/slapd/slapdn.c index e0a40d6541..d3e34fc784 100644 --- a/servers/slapd/slapdn.c +++ b/servers/slapd/slapdn.c @@ -1,6 +1,6 @@ /* This work is part of OpenLDAP Software . * - * Copyright 2004 The OpenLDAP Foundation. + * Copyright 2004-2006 The OpenLDAP Foundation. * Portions Copyright 2004 Pierangelo Masarati. * All rights reserved. * @@ -40,21 +40,32 @@ slapdn( int argc, char **argv ) int rc = 0; const char *progname = "slapdn"; -#ifdef NEW_LOGGING - lutil_log_initialize( argc, argv ); -#endif slap_tool_init( progname, SLAPDN, argc, argv ); argv = &argv[ optind ]; 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, @@ -65,11 +76,24 @@ slapdn( int argc, char **argv ) } } else { - fprintf( stderr, "DN: <%s> check succeeded\n" - "normalized: <%s>\n" - "pretty: <%s>\n", - dn.bv_val, - ndn.bv_val, pdn.bv_val ); + switch ( dn_mode ) { + case SLAP_TOOL_LDAPDN_PRETTY: + printf( "%s\n", pdn.bv_val ); + break; + + case SLAP_TOOL_LDAPDN_NORMAL: + printf( "%s\n", ndn.bv_val ); + break; + + default: + printf( "DN: <%s> check succeeded\n" + "normalized: <%s>\n" + "pretty: <%s>\n", + dn.bv_val, + ndn.bv_val, pdn.bv_val ); + break; + } + ch_free( ndn.bv_val ); ch_free( pdn.bv_val ); }