Mercurial > dovecot > original-hg > dovecot-1.2
changeset 3724:d22c883021da HEAD
Added syslog_facility setting to config file.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 02 Dec 2005 14:53:21 +0200 |
parents | 17492616f363 |
children | cf8933dabc95 |
files | dovecot-example.conf src/auth/main.c src/imap/main.c src/login-common/main.c src/master/Makefile.am src/master/main.c src/master/master-settings.c src/master/master-settings.h src/pop3/main.c |
diffstat | 9 files changed, 53 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/dovecot-example.conf Fri Dec 02 13:30:45 2005 +0200 +++ b/dovecot-example.conf Fri Dec 02 14:53:21 2005 +0200 @@ -75,6 +75,11 @@ # format. #log_timestamp = "%b %d %H:%M:%S " +# Syslog facility to use if you're logging to syslog. Usually if you don't +# want to use "mail", you'll use local0..local7. Also other standard +# facilities are supported. +#syslog_facility = mail + ## ## Login processes ##
--- a/src/auth/main.c Fri Dec 02 13:30:45 2005 +0200 +++ b/src/auth/main.c Fri Dec 02 14:53:21 2005 +0200 @@ -45,14 +45,18 @@ static void open_logfile(void) { + const char *env; + if (getenv("LOG_TO_MASTER") != NULL) { i_set_failure_internal(); return; } - if (getenv("USE_SYSLOG") != NULL) - i_set_failure_syslog("dovecot-auth", LOG_NDELAY, LOG_MAIL); - else { + if (getenv("USE_SYSLOG") != NULL) { + env = getenv("SYSLOG_FACILITY"); + i_set_failure_syslog("dovecot-auth", LOG_NDELAY, + env == NULL ? LOG_MAIL : atoi(env)); + } else { /* log to file or stderr */ i_set_failure_file(getenv("LOGFILE"), "dovecot-auth"); }
--- a/src/imap/main.c Fri Dec 02 13:30:45 2005 +0200 +++ b/src/imap/main.c Fri Dec 02 14:53:21 2005 +0200 @@ -104,9 +104,11 @@ } i_snprintf(log_prefix, sizeof(log_prefix), "imap(%s)", user); - if (getenv("USE_SYSLOG") != NULL) - i_set_failure_syslog(log_prefix, LOG_NDELAY, LOG_MAIL); - else { + if (getenv("USE_SYSLOG") != NULL) { + const char *env = getenv("SYSLOG_FACILITY"); + i_set_failure_syslog(log_prefix, LOG_NDELAY, + env == NULL ? LOG_MAIL : atoi(env)); + } else { /* log to file or stderr */ i_set_failure_file(getenv("LOGFILE"), log_prefix); }
--- a/src/login-common/main.c Fri Dec 02 13:30:45 2005 +0200 +++ b/src/login-common/main.c Fri Dec 02 14:53:21 2005 +0200 @@ -147,7 +147,9 @@ i_set_failure_internal(); else { /* log to syslog */ - i_set_failure_syslog(process_name, LOG_NDELAY, LOG_MAIL); + env = getenv("SYSLOG_FACILITY"); + i_set_failure_syslog(process_name, LOG_NDELAY, + env == NULL ? LOG_MAIL : atoi(env)); /* if we don't chroot, we must chdir */ env = getenv("LOGIN_DIR");
--- a/src/master/Makefile.am Fri Dec 02 13:30:45 2005 +0200 +++ b/src/master/Makefile.am Fri Dec 02 14:53:21 2005 +0200 @@ -23,6 +23,7 @@ mail-process.c \ main.c \ master-settings.c \ + syslog-util.c \ ssl-init.c \ ssl-init-gnutls.c \ ssl-init-openssl.c @@ -35,4 +36,5 @@ mail-process.h \ master-login-interface.h \ master-settings.h \ + syslog-util.h \ ssl-init.h
--- a/src/master/main.c Fri Dec 02 13:30:45 2005 +0200 +++ b/src/master/main.c Fri Dec 02 14:53:21 2005 +0200 @@ -11,6 +11,7 @@ #include "auth-process.h" #include "login-process.h" #include "mail-process.h" +#include "syslog-util.h" #include "ssl-init.h" #include "log.h" @@ -61,6 +62,8 @@ void child_process_init_env(void) { + int facility; + /* remove all environment, we don't need them */ env_clean(); @@ -69,6 +72,11 @@ if (env_tz != NULL) env_put(t_strconcat("TZ=", env_tz, NULL)); + if (!syslog_facility_find(settings_root->defaults->syslog_facility, + &facility)) + facility = LOG_MAIL; + env_put(t_strdup_printf("SYSLOG_FACILITY=%d", facility)); + #ifdef DEBUG if (gdb) env_put("GDB=1"); #endif @@ -95,9 +103,14 @@ static void set_logfile(struct settings *set) { - if (set->log_path == NULL) - i_set_failure_syslog("dovecot", LOG_NDELAY, LOG_MAIL); - else { + int facility; + + if (set->log_path == NULL) { + if (!syslog_facility_find(set->syslog_facility, &facility)) + facility = LOG_MAIL; + + i_set_failure_syslog("dovecot", LOG_NDELAY, facility); + } else { /* log to file or stderr */ i_set_failure_file(set->log_path, "dovecot"); }
--- a/src/master/master-settings.c Fri Dec 02 13:30:45 2005 +0200 +++ b/src/master/master-settings.c Fri Dec 02 14:53:21 2005 +0200 @@ -4,6 +4,7 @@ #include "istream.h" #include "safe-mkdir.h" #include "unlink-directory.h" +#include "syslog-util.h" #include "settings.h" #include <stdio.h> @@ -47,6 +48,7 @@ DEF(SET_STR, log_path), DEF(SET_STR, info_log_path), DEF(SET_STR, log_timestamp), + DEF(SET_STR, syslog_facility), /* general */ DEF(SET_STR, protocols), @@ -239,6 +241,7 @@ MEMBER(log_path) NULL, MEMBER(info_log_path) NULL, MEMBER(log_timestamp) DEFAULT_FAILURE_STAMP_FORMAT, + MEMBER(syslog_facility) "mail", /* general */ MEMBER(protocols) "imap imaps", @@ -511,6 +514,7 @@ static int settings_verify(struct settings *set) { const char *dir; + int facility; if (!get_login_uid(set)) return FALSE; @@ -553,6 +557,11 @@ } } + if (!syslog_facility_find(set->syslog_facility, &facility)) { + i_error("Unknown syslog_facility '%s'", set->syslog_facility); + return FALSE; + } + #ifdef HAVE_SSL if (!set->ssl_disable) { if (set->ssl_ca_file != NULL &&
--- a/src/master/master-settings.h Fri Dec 02 13:30:45 2005 +0200 +++ b/src/master/master-settings.h Fri Dec 02 14:53:21 2005 +0200 @@ -18,6 +18,7 @@ const char *log_path; const char *info_log_path; const char *log_timestamp; + const char *syslog_facility; /* general */ const char *protocols;
--- a/src/pop3/main.c Fri Dec 02 13:30:45 2005 +0200 +++ b/src/pop3/main.c Fri Dec 02 14:53:21 2005 +0200 @@ -119,9 +119,11 @@ } i_snprintf(log_prefix, sizeof(log_prefix), "pop3(%s)", user); - if (getenv("USE_SYSLOG") != NULL) - i_set_failure_syslog(log_prefix, LOG_NDELAY, LOG_MAIL); - else { + if (getenv("USE_SYSLOG") != NULL) { + const char *env = getenv("SYSLOG_FACILITY"); + i_set_failure_syslog(log_prefix, LOG_NDELAY, + env == NULL ? LOG_MAIL : atoi(env)); + } else { /* log to file or stderr */ i_set_failure_file(getenv("LOGFILE"), log_prefix); }