mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-02-17 14:00:30 +08:00
Add support for LBER_OPT_LOG_PRINT_FN option.
This commit is contained in:
parent
01cd11c308
commit
d7079a10c3
@ -76,7 +76,11 @@ typedef int (*BERTranslateProc) LDAP_P(( char **bufp,
|
||||
/* get/set options for BerElement */
|
||||
#define LBER_OPT_BER_OPTIONS 0x01
|
||||
#define LBER_OPT_BER_DEBUG 0x02
|
||||
|
||||
#define LBER_OPT_DEBUG_LEVEL LBER_OPT_BER_DEBUG
|
||||
#define LBER_OPT_LOG_PRINT_FN 0x8001
|
||||
|
||||
typedef void (*BER_LOG_PRINT_FN) LDAP_P(( char *buf ));
|
||||
|
||||
/* LBER Sockbuf options */
|
||||
#define LBER_TO_FILE 0x01 /* to a file referenced by sb_fd */
|
||||
|
@ -17,12 +17,14 @@
|
||||
* Print stuff
|
||||
*/
|
||||
static void
|
||||
lber_print_error( char *data )
|
||||
lber_error_print( char *data )
|
||||
{
|
||||
fputs( data, stderr );
|
||||
fflush( stderr );
|
||||
}
|
||||
|
||||
BER_LOG_PRINT_FN lber_log_print = lber_error_print;
|
||||
|
||||
/*
|
||||
* lber log
|
||||
*/
|
||||
@ -72,7 +74,7 @@ va_dcl
|
||||
|
||||
va_end(ap);
|
||||
|
||||
lber_print_error( buf );
|
||||
(*lber_log_print)( buf );
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -82,7 +84,7 @@ static int lber_log_puts(int errlvl, int loglvl, char *buf)
|
||||
return 0;
|
||||
}
|
||||
|
||||
lber_print_error( buf );
|
||||
(*lber_log_print)( buf );
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -114,7 +116,7 @@ ber_bprint(char *data, int len )
|
||||
for ( ;; ) {
|
||||
if ( len < 1 ) {
|
||||
sprintf( buf, "\t%s\n", ( i == 0 ) ? "(end)" : out );
|
||||
lber_print_error( buf );
|
||||
(*lber_log_print)( buf );
|
||||
break;
|
||||
}
|
||||
|
||||
@ -136,7 +138,7 @@ ber_bprint(char *data, int len )
|
||||
if ( i > BPLEN - 2 ) {
|
||||
char data[128 + BPLEN];
|
||||
sprintf( data, "\t%s\n", out );
|
||||
lber_print_error(data);
|
||||
(*lber_log_print)(data);
|
||||
memset( out, 0, BPLEN );
|
||||
i = 0;
|
||||
continue;
|
||||
@ -166,7 +168,7 @@ ber_dump( BerElement *ber, int inout )
|
||||
(long) ber->ber_ptr,
|
||||
(long) ber->ber_end );
|
||||
|
||||
lber_print_error( buf );
|
||||
(*lber_log_print)( buf );
|
||||
|
||||
if ( inout == 1 ) {
|
||||
sprintf( buf, " current len %ld, contents:\n",
|
||||
@ -197,22 +199,22 @@ ber_sos_dump( Seqorset *sos )
|
||||
{
|
||||
char buf[132];
|
||||
|
||||
lber_print_error( "*** sos dump ***\n" );
|
||||
(*lber_log_print)( "*** sos dump ***\n" );
|
||||
|
||||
while ( sos != NULLSEQORSET ) {
|
||||
sprintf( buf, "ber_sos_dump: clen %ld first 0x%lx ptr 0x%lx\n",
|
||||
(long) sos->sos_clen, (long) sos->sos_first, (long) sos->sos_ptr );
|
||||
lber_print_error( buf );
|
||||
(*lber_log_print)( buf );
|
||||
|
||||
sprintf( buf, " current len %ld contents:\n",
|
||||
(long) (sos->sos_ptr - sos->sos_first) );
|
||||
lber_print_error( buf );
|
||||
(*lber_log_print)( buf );
|
||||
|
||||
ber_bprint( sos->sos_first, sos->sos_ptr - sos->sos_first );
|
||||
|
||||
sos = sos->sos_next;
|
||||
}
|
||||
|
||||
lber_print_error( "*** end dump ***\n" );
|
||||
(*lber_log_print)( "*** end dump ***\n" );
|
||||
}
|
||||
|
||||
|
@ -71,6 +71,12 @@ lber_set_option(
|
||||
if(option == LBER_OPT_BER_DEBUG) {
|
||||
lber_int_debug = * (int *) invalue;
|
||||
return LBER_OPT_SUCCESS;
|
||||
|
||||
} else if(option == LBER_OPT_LOG_PRINT_FN) {
|
||||
extern BER_LOG_PRINT_FN lber_log_print;
|
||||
|
||||
lber_log_print = (BER_LOG_PRINT_FN) invalue;
|
||||
return LBER_OPT_SUCCESS;
|
||||
}
|
||||
|
||||
return LBER_OPT_ERROR;
|
||||
|
Loading…
Reference in New Issue
Block a user