X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Ferror.c;h=8fc685b25f330ff17ba2a49e8c20590af7650334;hb=b4243bc119b2f88318103176c7c671662c9ff371;hp=77b54f9e0dc0043e3a1d77951ec9cebe48f8d80c;hpb=3c844f022546081ce062a5c2879a4f08f95cb84b;p=openldap diff --git a/libraries/libldap/error.c b/libraries/libldap/error.c index 77b54f9e0d..8fc685b25f 100644 --- a/libraries/libldap/error.c +++ b/libraries/libldap/error.c @@ -1,6 +1,6 @@ /* $OpenLDAP$ */ /* - * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ @@ -18,17 +18,17 @@ struct ldaperror { int e_code; - char *e_reason; + char *e_reason; }; -static const struct ldaperror ldap_errlist[] = { +static struct ldaperror ldap_builtin_errlist[] = { {LDAP_SUCCESS, "Success" }, {LDAP_OPERATIONS_ERROR, "Operations error" }, {LDAP_PROTOCOL_ERROR, "Protocol error" }, {LDAP_TIMELIMIT_EXCEEDED, "Time limit exceeded" }, {LDAP_SIZELIMIT_EXCEEDED, "Size limit exceeded" }, - {LDAP_COMPARE_FALSE, "Compare false" }, - {LDAP_COMPARE_TRUE, "Compare true" }, + {LDAP_COMPARE_FALSE, "Compare False" }, + {LDAP_COMPARE_TRUE, "Compare True" }, {LDAP_STRONG_AUTH_NOT_SUPPORTED, "Authentication method not supported" }, {LDAP_STRONG_AUTH_REQUIRED, "Strong authentication required" }, {LDAP_PARTIAL_RESULTS, "Partial results and referral received" }, @@ -92,15 +92,47 @@ static const struct ldaperror ldap_errlist[] = { {LDAP_CLIENT_LOOP, "Client Loop" }, {LDAP_REFERRAL_LIMIT_EXCEEDED, "Referral Limit Exceeded" }, - {-1, NULL } + {-1, NULL} }; +static struct ldaperror *ldap_errlist = ldap_builtin_errlist; + +void ldap_int_error_init( void ) { +#ifdef LDAP_NLS +#define LDAP_NLS_SDK_CAT "openldap_sdk" +#define LDAP_NLS_LIBLDAP_SET (0) + + int i; + nl_catd catd = catopen( LDAP_NLS_SDK_CAT, NL_CAT_LOCALE ); + + if( catd == -1 ) { + return; + } + + for ( i=0; ldap_errlist[i].e_reason != NULL; i++ ) { + char *msg = catgets( catd, + LDAP_NLS_LIBLDAP_SET, + ldap_errlist[i].e_code, NULL ); + + if( msg != NULL ) { + msg = LDAP_STRDUP( msg ); + + if( msg != NULL ) { + ldap_errlist[i].e_reason = msg; + } + } + } + + catclose( catd ); +#endif +} + static const struct ldaperror * ldap_int_error( int err ) { int i; - for ( i = 0; ldap_errlist[i].e_code != -1; i++ ) { + for ( i=0; ldap_errlist[i].e_reason != NULL; i++ ) { if ( err == ldap_errlist[i].e_code ) { return &ldap_errlist[i]; } @@ -114,7 +146,11 @@ ldap_err2string( int err ) { const struct ldaperror *e; +#ifdef NEW_LOGGING + LDAP_LOG (( "error", LDAP_LEVEL_ENTRY, "ldap_err2string\n" )); +#else Debug( LDAP_DEBUG_TRACE, "ldap_err2string\n", 0, 0, 0 ); +#endif e = ldap_int_error( err ); @@ -126,7 +162,11 @@ void ldap_perror( LDAP *ld, LDAP_CONST char *str ) { const struct ldaperror *e; +#ifdef NEW_LOGGING + LDAP_LOG (( "error", LDAP_LEVEL_ENTRY, "ldap_perror\n" )); +#else Debug( LDAP_DEBUG_TRACE, "ldap_perror\n", 0, 0, 0 ); +#endif assert( ld != NULL ); assert( LDAP_VALID( ld ) ); @@ -207,7 +247,11 @@ ldap_parse_result( ber_tag_t tag; BerElement *ber; +#ifdef NEW_LOGGING + LDAP_LOG (( "error", LDAP_LEVEL_ENTRY, "ldap_parse_result\n" )); +#else Debug( LDAP_DEBUG_TRACE, "ldap_parse_result\n", 0, 0, 0 ); +#endif assert( ld != NULL ); assert( LDAP_VALID( ld ) );