From 5ea77a75dd2d2158401331879f3c8f47940a732c Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 18:35:32 +0200 Subject: Adding upstream version 2.5.13+dfsg. Signed-off-by: Daniel Baumann --- servers/slapd/slapdn.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 servers/slapd/slapdn.c (limited to 'servers/slapd/slapdn.c') diff --git a/servers/slapd/slapdn.c b/servers/slapd/slapdn.c new file mode 100644 index 0000000..d38322e --- /dev/null +++ b/servers/slapd/slapdn.c @@ -0,0 +1,107 @@ +/* $OpenLDAP$ */ +/* This work is part of OpenLDAP Software . + * + * Copyright 2004-2022 The OpenLDAP Foundation. + * Portions Copyright 2004 Pierangelo Masarati. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . + */ +/* ACKNOWLEDGEMENTS: + * This work was initially developed by Pierangelo Masarati for inclusion + * in OpenLDAP Software. + */ + +#include "portable.h" + +#include + +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include "slapcommon.h" + +int +slapdn( int argc, char **argv ) +{ + int rc = 0; + const char *progname = "slapdn"; + + slap_tool_init( progname, SLAPDN, argc, argv ); + + argv = &argv[ optind ]; + argc -= optind; + + for ( ; argc--; argv++ ) { + struct berval dn, + pdn = BER_BVNULL, + ndn = BER_BVNULL; + + ber_str2bv( argv[ 0 ], 0, 0, &dn ); + + 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, + ldap_err2string( rc ) ); + if ( !continuemode ) { + rc = -1; + break; + } + + } else { + 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 ); + } + } + + if ( slap_tool_destroy()) + rc = EXIT_FAILURE; + + return rc; +} -- cgit v1.2.3