* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
/*
- * OpenLDAP API Test
+ * OpenLDAP DN API Test
* Written by: Pierangelo Masarati <ando@OpenLDAP.org>
*
* This program is designed to test the ldap_str2dn/ldap_dn2str
*/
#include "portable.h"
-#include <stdlib.h>
-
#include <ac/stdlib.h>
#include <ac/string.h>
#include <ac/unistd.h>
if ( rc == LDAP_SUCCESS ) {
int i;
- for ( i = 0; dn[ i ]; i++ ) {
- LDAPRDN *rdn = dn[ i ][ 0 ];
- char *rstr;
+ if( dn ) {
+ for ( i = 0; dn[i]; i++ ) {
+ LDAPRDN *rdn = dn[ 0 ][ i ];
+ char *rstr;
+
+ if ( ldap_rdn2str( rdn, &rstr, flags[ f2 ] ) ) {
+ fprintf( stdout, "\tldap_rdn2str() failed\n" );
+ continue;
+ }
- if ( ldap_rdn2str( rdn, &rstr, flags[ f2 ] ) ) {
- fprintf( stdout, "\tldap_rdn2str() failed\n" );
- continue;
+ fprintf( stdout, "\tldap_rdn2str() = \"%s\"\n", rstr );
+ ldap_memfree( rstr );
}
-
- fprintf( stdout, "\tldap_rdn2str() = \"%s\"\n", rstr );
- ldap_memfree( rstr );
+ } else {
+ fprintf( stdout, "\tempty DN\n" );
}
}
- if ( rc == LDAP_SUCCESS &&
- ldap_dn2str( dn, &str, flags[ f2 ] ) == LDAP_SUCCESS ) {
+ if ( rc == LDAP_SUCCESS &&
+ ldap_dn2str( dn, &str, flags[ f2 ] ) == LDAP_SUCCESS )
+ {
char **values, *tmp, *tmp2;
int n;
str, str2,
strcmp( str, str2 ) == 0 ? "yes" : "no" );
- for ( iRDN = 0; dn[ iRDN ] && dn2[ iRDN ]; iRDN++ ) {
- LDAPRDN *r = dn[ iRDN ][ 0 ];
- LDAPRDN *r2 = dn2[ iRDN ][ 0 ];
+ if(( dn != NULL && dn2 == NULL )
+ || ( dn != NULL && dn2 == NULL ))
+ {
+ fprintf( stdout, "mismatch\n" );
+ } else if (( dn != NULL ) && (dn2 != NULL))
+ for ( iRDN = 0; dn[ 0 ][ iRDN ] && dn2[ 0 ][ iRDN ]; iRDN++ )
+ {
+ LDAPRDN *r = dn[ 0 ][ iRDN ];
+ LDAPRDN *r2 = dn2[ 0 ][ iRDN ];
int iAVA;
- for ( iAVA = 0; r[ iAVA ] && r[ iAVA ]; iAVA++ ) {
- LDAPAVA *a = r[ iAVA ][ 0 ];
- LDAPAVA *a2 = r2[ iAVA ][ 0 ];
-
- if ( a->la_attr->bv_len != a2->la_attr->bv_len
- || memcmp( a->la_attr->bv_val, a2->la_attr->bv_val, a->la_attr->bv_len )
- || a->la_flags != a2->la_flags
- || a->la_value->bv_len != a2->la_value->bv_len
- || memcmp( a->la_value->bv_val, a2->la_value->bv_val, a->la_value->bv_len ) ) {
+ for ( iAVA = 0; r[ 0 ][ iAVA ] && r2[ 0 ][ iAVA ]; iAVA++ ) {
+ LDAPAVA *a = r[ 0 ][ iAVA ];
+ LDAPAVA *a2 = r2[ 0 ][ iAVA ];
+
+ if ( a->la_attr.bv_len != a2->la_attr.bv_len
+ || memcmp( a->la_attr.bv_val, a2->la_attr.bv_val,
+ a->la_attr.bv_len )
+ || a->la_flags != a2->la_flags
+ || a->la_value.bv_len != a2->la_value.bv_len
+ || memcmp( a->la_value.bv_val, a2->la_value.bv_val,
+ a->la_value.bv_len ) )
+ {
fprintf( stdout, "mismatch\n" );
-
}
}
}
- ldapava_free_dn( dn2 );
+ ldap_dnfree( dn2 );
ldap_memfree( str2 );
}
ldap_memfree( str );
}
- ldapava_free_dn( dn );
+ ldap_dnfree( dn );
/* note: dn is not freed */