>From 958933cd0e98f1fda68a2d4d4fc51fb8058a7914 Mon Sep 17 00:00:00 2001 From: SATOH Fumiyasu Date: Tue, 1 Jul 2014 19:20:30 +0900 Subject: [PATCH 1/2] master: Do not prepend "dovecot-" to a process name --- src/master/main.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/master/main.c b/src/master/main.c index 752c253..733fc04 100644 --- a/src/master/main.c +++ b/src/master/main.c @@ -86,8 +86,6 @@ void process_exec(const char *cmd, const char *extra_args[]) /* prefix with dovecot/ */ argv[0] = t_strdup_printf("%s/%s", services->set->instance_name, argv[0]); - if (strncmp(argv[0], PACKAGE, strlen(PACKAGE)) != 0) - argv[0] = t_strconcat(PACKAGE"-", argv[0], NULL); (void)execv_const(executable, argv); } -- 2.0.1 >From 36d052adbd04f8c8a89ba66e086e22c152a5a93c Mon Sep 17 00:00:00 2001 From: SATOH Fumiyasu Date: Tue, 1 Jul 2014 19:22:56 +0900 Subject: [PATCH 2/2] lib-master: Set instance_name to the syslog name --- src/lib-master/master-service-settings.c | 2 ++ src/lib-master/master-service-settings.h | 1 + src/lib-master/master-service.c | 3 ++- src/lib/failures.c | 7 ++++++- src/master/service-process.c | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib-master/master-service-settings.c b/src/lib-master/master-service-settings.c index 30ad936..67fca19 100644 --- a/src/lib-master/master-service-settings.c +++ b/src/lib-master/master-service-settings.c @@ -36,6 +36,7 @@ master_service_settings_check(void *_set, pool_t pool, const char **error_r); static const struct setting_define master_service_setting_defines[] = { DEF(SET_STR, base_dir), DEF(SET_STR, state_dir), + DEF(SET_STR, instance_name), DEF(SET_STR, log_path), DEF(SET_STR, info_log_path), DEF(SET_STR, debug_log_path), @@ -52,6 +53,7 @@ static const struct setting_define master_service_setting_defines[] = { static const struct master_service_settings master_service_default_settings = { .base_dir = PKG_RUNDIR, .state_dir = PKG_STATEDIR, + .instance_name = PACKAGE, .log_path = "syslog", .info_log_path = "", .debug_log_path = "", diff --git a/src/lib-master/master-service-settings.h b/src/lib-master/master-service-settings.h index e5b5ace..d7f1a80 100644 --- a/src/lib-master/master-service-settings.h +++ b/src/lib-master/master-service-settings.h @@ -10,6 +10,7 @@ struct master_service; struct master_service_settings { const char *base_dir; const char *state_dir; + const char *instance_name; const char *log_path; const char *info_log_path; const char *debug_log_path; diff --git a/src/lib-master/master-service.c b/src/lib-master/master-service.c index 65b2753..d3e5281 100644 --- a/src/lib-master/master-service.c +++ b/src/lib-master/master-service.c @@ -297,7 +297,8 @@ void master_service_init_log(struct master_service *service, if (!syslog_facility_find(service->set->syslog_facility, &facility)) facility = LOG_MAIL; - i_set_failure_syslog("dovecot", LOG_NDELAY, facility); + i_set_failure_syslog(service->set->instance_name, LOG_NDELAY, + facility); i_set_failure_prefix("%s", prefix); if (strcmp(service->set->log_path, "syslog") != 0) { diff --git a/src/lib/failures.c b/src/lib/failures.c index 3023ba8..0ebba3d 100644 --- a/src/lib/failures.c +++ b/src/lib/failures.c @@ -443,7 +443,12 @@ void i_syslog_error_handler(const struct failure_context *ctx, void i_set_failure_syslog(const char *ident, int options, int facility) { - openlog(ident, options, facility); + static char *syslog_ident = NULL; + + i_free(syslog_ident); + syslog_ident = i_strdup(ident); + + openlog(syslog_ident, options, facility); i_set_fatal_handler(i_syslog_fatal_handler); i_set_error_handler(i_syslog_error_handler); diff --git a/src/master/service-process.c b/src/master/service-process.c index bc10df1..47ee7bf 100644 --- a/src/master/service-process.c +++ b/src/master/service-process.c @@ -222,6 +222,7 @@ static void service_process_setup_config_environment(struct service *service) /* give the log's configuration directly, so it won't depend on config process */ env_put("DOVECONF_ENV=1"); + env_put(t_strconcat("INSTANCE_NAME=", set->instance_name, NULL)); env_put(t_strconcat("LOG_PATH=", set->log_path, NULL)); env_put(t_strconcat("INFO_LOG_PATH=", set->info_log_path, NULL)); env_put(t_strconcat("DEBUG_LOG_PATH=", set->debug_log_path, NULL)); -- 2.0.1