mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-05 14:42:10 -05:00
ITS#9513 Intercept liblber error printer
And add time and thread ID prefix to all debug output
This commit is contained in:
parent
01e5664c7c
commit
9ac3909ead
2 changed files with 21 additions and 0 deletions
|
|
@ -66,6 +66,10 @@ ber_get_option(
|
|||
case LBER_OPT_LOG_PRINT_FILE:
|
||||
*((FILE**)outvalue) = (FILE*)ber_pvt_err_file;
|
||||
return LBER_OPT_SUCCESS;
|
||||
|
||||
case LBER_OPT_LOG_PRINT_FN:
|
||||
*(BER_LOG_PRINT_FN *)outvalue = ber_pvt_log_print;
|
||||
return LBER_OPT_SUCCESS;
|
||||
}
|
||||
|
||||
ber_errno = LBER_ERROR_PARAM;
|
||||
|
|
|
|||
|
|
@ -377,6 +377,19 @@ usage( char *name )
|
|||
);
|
||||
}
|
||||
|
||||
typedef void (BER_logger)(const char *buf);
|
||||
static BER_logger *ber_logger;
|
||||
static void debug_print( const char *data )
|
||||
{
|
||||
char buf[4136]; /* 4096 + 40 */
|
||||
struct timeval tv;
|
||||
|
||||
gettimeofday( &tv, NULL );
|
||||
buf[sizeof(buf)-1] = '\0';
|
||||
snprintf( buf, sizeof(buf)-1, "%lx.%05x %p %s",
|
||||
(long)tv.tv_sec, tv.tv_usec, (void *)ldap_pvt_thread_self(), data );
|
||||
ber_logger( buf );
|
||||
}
|
||||
|
||||
#ifdef HAVE_NT_SERVICE_MANAGER
|
||||
void WINAPI ServiceMain( DWORD argc, LPTSTR *argv )
|
||||
|
|
@ -720,6 +733,8 @@ unhandled_option:;
|
|||
if ( optind != argc )
|
||||
goto unhandled_option;
|
||||
|
||||
ber_get_option(NULL, LBER_OPT_LOG_PRINT_FN, &ber_logger);
|
||||
ber_set_option(NULL, LBER_OPT_LOG_PRINT_FN, debug_print);
|
||||
ber_set_option(NULL, LBER_OPT_DEBUG_LEVEL, &slap_debug);
|
||||
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, &slap_debug);
|
||||
ldif_debug = slap_debug;
|
||||
|
|
@ -843,6 +858,8 @@ unhandled_option:;
|
|||
debug_unknowns = NULL;
|
||||
if ( rc )
|
||||
goto destroy;
|
||||
ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &slap_debug );
|
||||
ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &slap_debug );
|
||||
}
|
||||
if ( syslog_unknowns ) {
|
||||
rc = parse_debug_unknowns( syslog_unknowns, &ldap_syslog );
|
||||
|
|
|
|||
Loading…
Reference in a new issue