From 04a9c896a99be843e531f989352f39687518c4e8 Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Sep 28 2016 18:48:16 +0000 Subject: Ticket 48978 - Convert slapi_log_error() to a variadic macro Description: In order to replace the LDAPDebug() logging functions with slapi_log_error() we need make slapi_log_error behave as the LDAPDebug() marco does. The benefit of having the logging function macro is that you can completely remove the presence of error logging. This is very beneficial when investigating a performance issue. https://fedorahosted.org/389/ticket/48978 Reviewed by: nhosoi(Thanks!) --- diff --git a/ldap/servers/plugins/posix-winsync/posix-group-func.c b/ldap/servers/plugins/posix-winsync/posix-group-func.c index 44ebeef..61e4aa5 100644 --- a/ldap/servers/plugins/posix-winsync/posix-group-func.c +++ b/ldap/servers/plugins/posix-winsync/posix-group-func.c @@ -18,8 +18,8 @@ $Id: posix-group-func.c 28 2011-05-13 14:35:29Z grzemba $ */ #include -#include #include "slapi-plugin.h" +#include #include "posix-wsp-ident.h" #include "posix-group-func.h" diff --git a/ldap/servers/plugins/replication/repl5_replica_config.c b/ldap/servers/plugins/replication/repl5_replica_config.c index f125037..20a9433 100644 --- a/ldap/servers/plugins/replication/repl5_replica_config.c +++ b/ldap/servers/plugins/replication/repl5_replica_config.c @@ -3630,6 +3630,7 @@ stop_ruv_cleaning() void cleanruv_log(Slapi_Task *task, int rid, char *task_type, int sev_level, char *fmt, ...) { +#ifdef LDAP_DEBUG va_list ap1; va_list ap2; va_list ap3; @@ -3654,6 +3655,7 @@ cleanruv_log(Slapi_Task *task, int rid, char *task_type, int sev_level, char *fm va_end(ap2); va_end(ap3); va_end(ap4); +#endif } char * diff --git a/ldap/servers/slapd/daemon.c b/ldap/servers/slapd/daemon.c index 8061f3b..9f8a183 100644 --- a/ldap/servers/slapd/daemon.c +++ b/ldap/servers/slapd/daemon.c @@ -1192,7 +1192,11 @@ void slapd_daemon( daemon_ports_t *ports ) tp_config.stacksize = 0; tp_config.event_queue_size = config_get_maxdescriptors(); tp_config.work_queue_size = config_get_maxdescriptors(); +#ifdef LDAP_DEBUG tp_config.log_fct = nunc_stans_logging; +#else + tp_config.log_fct = NULL; +#endif tp_config.log_start_fct = NULL; tp_config.log_close_fct = NULL; tp_config.malloc_fct = nunc_stans_malloc; diff --git a/ldap/servers/slapd/log.c b/ldap/servers/slapd/log.c index 564d7c7..880233f 100644 --- a/ldap/servers/slapd/log.c +++ b/ldap/servers/slapd/log.c @@ -2420,7 +2420,7 @@ vslapd_log_error( * severity - LOG_ERR, LOG_WARNING, LOG_INFO, etc */ int -slapi_log_error( int loglevel, char *subsystem, char *fmt, ... ) +slapi_log_err( int loglevel, char *subsystem, char *fmt, ... ) { va_list ap_err; va_list ap_file; diff --git a/ldap/servers/slapd/slapi-plugin.h b/ldap/servers/slapd/slapi-plugin.h index 0d3277a..c1a9acf 100644 --- a/ldap/servers/slapd/slapi-plugin.h +++ b/ldap/servers/slapd/slapi-plugin.h @@ -27,6 +27,7 @@ extern "C" { #endif +#include "portable.h" #include "prtypes.h" #include "ldap.h" #include "prprf.h" @@ -57,6 +58,13 @@ NSPR_API(PRUint32) PR_fprintf(struct PRFileDesc* fd, const char *fmt, ...) ; #endif +/* Define our logging macros */ +#define slapi_log_error(level, subsystem, fmt, ...) +#ifdef LDAP_DEBUG +# undef slapi_log_error +# define slapi_log_error(level, subsystem, ...) slapi_log_err(level, subsystem, __VA_ARGS__) +#endif + /* NSPR uses the print macros a bit differently than ANSI C. We * need to use ll for a 64-bit integer, even when a long is 64-bit. */ @@ -6062,12 +6070,13 @@ int slapi_register_plugin_ext( const char *plugintype, int enabled, /* * logging */ -int slapi_log_error( int loglevel, char *subsystem, char *fmt, ... ) +int slapi_log_err( int loglevel, char *subsystem, char *fmt, ... ) #ifdef __GNUC__ __attribute__ ((format (printf, 3, 4))); #else ; #endif + int slapi_log_error_ext( int loglevel, char *subsystem, char *fmt, va_list varg1, va_list varg2); /* allowed values for the "severity" parameter */