mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
r18639@catbus: nickm | 2008-03-07 20:11:48 -0500
Change semantics of add-a-log functions to copy severity setup: that is way less error-prone. Fix up config.c to act accordingly. svn:r13888
This commit is contained in:
parent
2675276618
commit
7587e16796
@ -480,8 +480,7 @@ new_severity_list(int loglevelMin, int loglevelMax)
|
||||
}
|
||||
|
||||
/** Add a log handler named <b>name</b> to send all messages in <b>severity</b>
|
||||
* to <b>stream</b>. Steals a reference to <b>severity</b>; the caller must
|
||||
* not use it after calling this function. Helper: does no locking. */
|
||||
* to <b>stream</b>. Copies <b>severity</b>. Helper: does no locking. */
|
||||
static void
|
||||
add_stream_log_impl(log_severity_list_t *severity,
|
||||
const char *name, FILE *stream)
|
||||
@ -489,7 +488,7 @@ add_stream_log_impl(log_severity_list_t *severity,
|
||||
logfile_t *lf;
|
||||
lf = tor_malloc_zero(sizeof(logfile_t));
|
||||
lf->filename = tor_strdup(name);
|
||||
lf->severities = severity;
|
||||
lf->severities = tor_memdup(severity, sizeof(log_severity_list_t));
|
||||
lf->file = stream;
|
||||
lf->next = logfiles;
|
||||
|
||||
@ -539,7 +538,7 @@ add_callback_log(log_severity_list_t *severity, log_callback cb)
|
||||
{
|
||||
logfile_t *lf;
|
||||
lf = tor_malloc_zero(sizeof(logfile_t));
|
||||
lf->severities = severity;
|
||||
lf->severities = tor_memdup(severity, sizeof(log_severity_list_t));
|
||||
lf->filename = tor_strdup("<callback>");
|
||||
lf->callback = cb;
|
||||
lf->next = logfiles;
|
||||
@ -657,7 +656,7 @@ add_syslog_log(log_severity_list_t *severity)
|
||||
openlog("Tor", LOG_PID | LOG_NDELAY, LOGFACILITY);
|
||||
|
||||
lf = tor_malloc_zero(sizeof(logfile_t));
|
||||
lf->severities = severity;
|
||||
lf->severities = tor_memdup(severity, sizeof(log_severity_list_t));
|
||||
lf->filename = tor_strdup("<syslog>");
|
||||
|
||||
lf->is_syslog = 1;
|
||||
|
@ -1055,6 +1055,7 @@ options_act_reversible(or_options_t *old_options, char **msg)
|
||||
close_temp_logs();
|
||||
add_callback_log(severity, control_event_logmsg);
|
||||
control_adjust_event_log_severity();
|
||||
tor_free(severity);
|
||||
}
|
||||
SMARTLIST_FOREACH(replaced_listeners, connection_t *, conn,
|
||||
{
|
||||
@ -3770,7 +3771,6 @@ options_init_logs(or_options_t *options, int validate_only)
|
||||
} else {
|
||||
add_stream_log(severity, err?"<stderr>":"<stdout>",
|
||||
err?stderr:stdout);
|
||||
severity=NULL;
|
||||
}
|
||||
}
|
||||
goto cleanup;
|
||||
@ -3780,7 +3780,6 @@ options_init_logs(or_options_t *options, int validate_only)
|
||||
#ifdef HAVE_SYSLOG_H
|
||||
if (!validate_only) {
|
||||
add_syslog_log(severity);
|
||||
severity=NULL;
|
||||
}
|
||||
#else
|
||||
log_warn(LD_CONFIG, "Syslog is not supported on this system. Sorry.");
|
||||
@ -3794,8 +3793,6 @@ options_init_logs(or_options_t *options, int validate_only)
|
||||
if (add_file_log(severity, smartlist_get(elts, 1)) < 0) {
|
||||
log_warn(LD_CONFIG, "Couldn't open file for 'Log %s'", opt->value);
|
||||
ok = 0;
|
||||
} else {
|
||||
tor_free(severity);
|
||||
}
|
||||
}
|
||||
goto cleanup;
|
||||
|
Loading…
Reference in New Issue
Block a user