mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
debug: Set backends from logging parameter in smb.conf
Fallback to the settings of 'syslog' and 'syslog only' if logging has not been set. Signed-off-by: Christof Schmitt <cs@samba.org> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
This commit is contained in:
parent
5a3eddc7b9
commit
8a46da3280
@ -2875,15 +2875,15 @@ static bool lpcfg_update(struct loadparm_context *lp_ctx)
|
|||||||
ZERO_STRUCT(settings);
|
ZERO_STRUCT(settings);
|
||||||
/* Add any more debug-related smb.conf parameters created in
|
/* Add any more debug-related smb.conf parameters created in
|
||||||
* future here */
|
* future here */
|
||||||
settings.syslog = lp_ctx->globals->syslog;
|
|
||||||
settings.syslog_only = lp_ctx->globals->syslog_only;
|
|
||||||
settings.timestamp_logs = lp_ctx->globals->timestamp_logs;
|
settings.timestamp_logs = lp_ctx->globals->timestamp_logs;
|
||||||
settings.debug_prefix_timestamp = lp_ctx->globals->debug_prefix_timestamp;
|
settings.debug_prefix_timestamp = lp_ctx->globals->debug_prefix_timestamp;
|
||||||
settings.debug_hires_timestamp = lp_ctx->globals->debug_hires_timestamp;
|
settings.debug_hires_timestamp = lp_ctx->globals->debug_hires_timestamp;
|
||||||
settings.debug_pid = lp_ctx->globals->debug_pid;
|
settings.debug_pid = lp_ctx->globals->debug_pid;
|
||||||
settings.debug_uid = lp_ctx->globals->debug_uid;
|
settings.debug_uid = lp_ctx->globals->debug_uid;
|
||||||
settings.debug_class = lp_ctx->globals->debug_class;
|
settings.debug_class = lp_ctx->globals->debug_class;
|
||||||
debug_set_settings(&settings);
|
debug_set_settings(&settings, lp_ctx->globals->logging,
|
||||||
|
lp_ctx->globals->syslog,
|
||||||
|
lp_ctx->globals->syslog_only);
|
||||||
|
|
||||||
/* FIXME: This is a bit of a hack, but we can't use a global, since
|
/* FIXME: This is a bit of a hack, but we can't use a global, since
|
||||||
* not everything that uses lp also uses the socket library */
|
* not everything that uses lp also uses the socket library */
|
||||||
|
@ -684,12 +684,40 @@ static void debug_init(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This forces in some smb.conf derived values into the debug system.
|
void debug_set_settings(struct debug_settings *settings,
|
||||||
* There are no pointers in this structure, so we can just
|
const char *logging_param,
|
||||||
* structure-assign it in */
|
int syslog_level, bool syslog_only)
|
||||||
void debug_set_settings(struct debug_settings *settings)
|
|
||||||
{
|
{
|
||||||
|
char fake_param[20];
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This forces in some smb.conf derived values into the debug
|
||||||
|
* system. There are no pointers in this structure, so we can
|
||||||
|
* just structure-assign it in
|
||||||
|
*/
|
||||||
state.settings = *settings;
|
state.settings = *settings;
|
||||||
|
|
||||||
|
state.settings.syslog = syslog_level;
|
||||||
|
state.settings.syslog_only = syslog_only;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If 'logging' is not set, create backend settings from
|
||||||
|
* deprecated 'syslog' and 'syslog only' paramters
|
||||||
|
*/
|
||||||
|
if (!logging_param) {
|
||||||
|
if (syslog_only) {
|
||||||
|
snprintf(fake_param, sizeof(fake_param),
|
||||||
|
"syslog:%d", syslog_level - 1);
|
||||||
|
} else {
|
||||||
|
snprintf(fake_param, sizeof(fake_param),
|
||||||
|
"syslog:%d file:%d", syslog_level -1,
|
||||||
|
MAX_DEBUG_LEVEL);
|
||||||
|
}
|
||||||
|
|
||||||
|
logging_param = fake_param;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug_set_backends(logging_param);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -718,12 +746,6 @@ void setup_logging(const char *prog_name, enum debug_logtype new_logtype)
|
|||||||
state.prog_name = prog_name;
|
state.prog_name = prog_name;
|
||||||
}
|
}
|
||||||
reopen_logs_internal();
|
reopen_logs_internal();
|
||||||
|
|
||||||
#ifdef WITH_SYSLOG
|
|
||||||
if (state.logtype == DEBUG_FILE) {
|
|
||||||
debug_syslog_reload(true, false, state.prog_name);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
@ -241,7 +241,9 @@ int debug_add_class(const char *classname);
|
|||||||
bool debug_parse_levels(const char *params_str);
|
bool debug_parse_levels(const char *params_str);
|
||||||
void debug_setup_talloc_log(void);
|
void debug_setup_talloc_log(void);
|
||||||
void debug_set_logfile(const char *name);
|
void debug_set_logfile(const char *name);
|
||||||
void debug_set_settings(struct debug_settings *settings);
|
void debug_set_settings(struct debug_settings *settings,
|
||||||
|
const char *logging_param,
|
||||||
|
int syslog_level, bool syslog_only);
|
||||||
bool reopen_logs_internal( void );
|
bool reopen_logs_internal( void );
|
||||||
void force_check_log_size( void );
|
void force_check_log_size( void );
|
||||||
bool need_to_check_log_size( void );
|
bool need_to_check_log_size( void );
|
||||||
|
@ -34,15 +34,14 @@ bool reopen_logs(void)
|
|||||||
|
|
||||||
ZERO_STRUCT(settings);
|
ZERO_STRUCT(settings);
|
||||||
settings.max_log_size = lp_max_log_size();
|
settings.max_log_size = lp_max_log_size();
|
||||||
settings.syslog = lp_syslog();
|
|
||||||
settings.syslog_only = lp_syslog_only();
|
|
||||||
settings.timestamp_logs = lp_timestamp_logs();
|
settings.timestamp_logs = lp_timestamp_logs();
|
||||||
settings.debug_prefix_timestamp = lp_debug_prefix_timestamp();
|
settings.debug_prefix_timestamp = lp_debug_prefix_timestamp();
|
||||||
settings.debug_hires_timestamp = lp_debug_hires_timestamp();
|
settings.debug_hires_timestamp = lp_debug_hires_timestamp();
|
||||||
settings.debug_pid = lp_debug_pid();
|
settings.debug_pid = lp_debug_pid();
|
||||||
settings.debug_uid = lp_debug_uid();
|
settings.debug_uid = lp_debug_uid();
|
||||||
settings.debug_class = lp_debug_class();
|
settings.debug_class = lp_debug_class();
|
||||||
debug_set_settings(&settings);
|
debug_set_settings(&settings, lp_logging(talloc_tos()),
|
||||||
|
lp_syslog(), lp_syslog_only());
|
||||||
}
|
}
|
||||||
return reopen_logs_internal();
|
return reopen_logs_internal();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user