i'm not sure what exactly those macros do and if its a good idea
to implant them in there or not but i would start by checking yr
server logs, making sure correct entries in fact do exist, trying
to retrieve them using ldapsearch or alike. you can also try ICU
library which does pretty good job on converting from/to whatever
its cross platform and its open source as well [ IBM license ].
http://icu.sourceforge.net/
http://icu.sourceforge.net/apiref/icu4c/index.html
good luck!
ialexei wrote:
Platform : MS Windows XP, VC++.net 2003, ATL
I am able to query all nodes in the LDAP tree except for the ones that
begin with Ç.
The CT2AEX<>(..,CP_UTF8) seem to be converting to UTF8 successfully,
but the ldap_first_entry returns NULL.
I also tried setting the option to use LDAP version 3.0, but that does
not work either. Any ideas what is going on ?
I modified the sample in the SDK search.c (enclosed below) with similar
results.
-Alexei
#define MY_FILTER _T("(cn=Ç*)")
int _tmain(int argc, _TCHAR* argv[])
{
LDAP *ld;
LDAPMessage *result, *e;
BerElement *ber;
char *a, *dn;
char **vals;
int i;
/* get a handle to an LDAP connection */
if ( (ld = ldap_init( CT2AEX<>(MY_HOST, CP_UTF8), MY_PORT )) == NULL )
{
perror( "ldap_init" );
return( 1 );
}
/* authenticate to the directory as nobody */
if ( ldap_simple_bind_s( ld, NULL, NULL ) != LDAP_SUCCESS ) {
ldap_perror( ld, "ldap_simple_bind_s" );
ldap_unbind( ld );
return( 1 );
}
/* search for all entries with surname of Jensen */
if ( ldap_search_s( ld, CT2AEX<>(MY_SEARCHBASE, CP_UTF8),
LDAP_SCOPE_SUBTREE,
CT2AEX<>(MY_FILTER, CP_UTF8), NULL, 0, &result ) !=
LDAP_SUCCESS ) {
ldap_perror( ld, "ldap_search_s" );
if ( result == NULL ) {
ldap_unbind( ld );
return( 1 );
}
}
/* for each entry print out name + all attrs and values */
for ( e = ldap_first_entry( ld, result ); e != NULL;
e = ldap_next_entry( ld, e ) ) {
if ( (dn = ldap_get_dn( ld, e )) != NULL ) {
printf( "dn: %s\n", dn );
ldap_memfree( dn );
}
for ( a = ldap_first_attribute( ld, e, &ber );
a != NULL; a = ldap_next_attribute( ld, e, ber ) ) {
if ((vals = ldap_get_values( ld, e, a)) != NULL ) {
for ( i = 0; vals[i] != NULL; i++ ) {
printf( "%s: %s\n", a, vals[i] );
}
ldap_value_free( vals );
}
ldap_memfree( a );
}
if ( ber != NULL ) {
ber_free( ber, 0 );
}
printf( "\n" );
}
ldap_msgfree( result );
ldap_unbind( ld );
return( 0 );
}
_______________________________________________
mozilla-directory mailing list
[email protected]
http://mail.mozilla.org/listinfo/mozilla-directory
_______________________________________________
mozilla-directory mailing list
[email protected]
http://mail.mozilla.org/listinfo/mozilla-directory