ZERO_STRUCT(settings);
/* Add any more debug-related smb.conf parameters created in
* 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.debug_prefix_timestamp = lp_ctx->globals->debug_prefix_timestamp;
settings.debug_hires_timestamp = lp_ctx->globals->debug_hires_timestamp;
settings.debug_pid = lp_ctx->globals->debug_pid;
settings.debug_uid = lp_ctx->globals->debug_uid;
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
* not everything that uses lp also uses the socket library */
}
}
-/* 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 */
-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)
{
+ 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.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);
}
/**
state.prog_name = prog_name;
}
reopen_logs_internal();
-
-#ifdef WITH_SYSLOG
- if (state.logtype == DEBUG_FILE) {
- debug_syslog_reload(true, false, state.prog_name);
- }
-#endif
}
/***************************************************************************
bool debug_parse_levels(const char *params_str);
void debug_setup_talloc_log(void);
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 );
void force_check_log_size( void );
bool need_to_check_log_size( void );
ZERO_STRUCT(settings);
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.debug_prefix_timestamp = lp_debug_prefix_timestamp();
settings.debug_hires_timestamp = lp_debug_hires_timestamp();
settings.debug_pid = lp_debug_pid();
settings.debug_uid = lp_debug_uid();
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();
}