dovecot-2.0: lib-master: Added _NO_CONFIG_SETTIGS and _NO_ENV_SE...
dovecot at dovecot.org
dovecot at dovecot.org
Sun Oct 18 22:33:25 EEST 2009
details: http://hg.dovecot.org/dovecot-2.0/rev/4d21bb0fff3a
changeset: 10092:4d21bb0fff3a
user: Timo Sirainen <tss at iki.fi>
date: Sun Oct 18 15:33:13 2009 -0400
description:
lib-master: Added _NO_CONFIG_SETTIGS and _NO_ENV_SETTINGS flags.
diffstat:
4 files changed, 23 insertions(+), 16 deletions(-)
src/lib-master/master-service-private.h | 1 -
src/lib-master/master-service-settings.c | 30 +++++++++++++++++-------------
src/lib-master/master-service.c | 2 +-
src/lib-master/master-service.h | 6 +++++-
diffs (86 lines):
diff -r 6a1c96577476 -r 4d21bb0fff3a src/lib-master/master-service-private.h
--- a/src/lib-master/master-service-private.h Sun Oct 18 15:24:12 2009 -0400
+++ b/src/lib-master/master-service-private.h Sun Oct 18 15:33:13 2009 -0400
@@ -46,7 +46,6 @@ struct master_service {
unsigned int keep_environment:1;
unsigned int log_directly:1;
unsigned int initial_status_sent:1;
- unsigned int default_settings:1;
unsigned int die_with_master:1;
unsigned int call_avail_overflow:1;
};
diff -r 6a1c96577476 -r 4d21bb0fff3a src/lib-master/master-service-settings.c
--- a/src/lib-master/master-service-settings.c Sun Oct 18 15:24:12 2009 -0400
+++ b/src/lib-master/master-service-settings.c Sun Oct 18 15:33:13 2009 -0400
@@ -192,7 +192,8 @@ int master_service_settings_read(struct
int ret, fd = -1;
time_t now, timeout;
- if (getenv("DOVECONF_ENV") == NULL && !service->default_settings) {
+ if (getenv("DOVECONF_ENV") == NULL &&
+ (service->flags & MASTER_SERVICE_FLAG_NO_CONFIG_SETTINGS) == 0) {
path = input->config_path != NULL ? input->config_path :
master_service_get_config_path(service);
fd = master_service_read_config(service, path, input, error_r);
@@ -258,18 +259,21 @@ int master_service_settings_read(struct
else if (fd != -1)
(void)close(fd);
- /* let environment override settings. especially useful for the
- settings from userdb. */
- if (settings_parse_environ(parser) < 0) {
- *error_r = settings_parser_get_error(parser);
- return -1;
- }
- env = getenv("VARS_EXPANDED");
- if (env != NULL) T_BEGIN {
- keys = t_strsplit(env, " ");
- settings_parse_set_keys_expandeded(parser, service->set_pool,
- keys);
- } T_END;
+ if ((service->flags & MASTER_SERVICE_FLAG_NO_ENV_SETTINGS) == 0) {
+ /* let environment override settings. especially useful for the
+ settings from userdb. */
+ if (settings_parse_environ(parser) < 0) {
+ *error_r = settings_parser_get_error(parser);
+ return -1;
+ }
+ env = getenv("VARS_EXPANDED");
+ if (env != NULL) T_BEGIN {
+ keys = t_strsplit(env, " ");
+ settings_parse_set_keys_expandeded(parser,
+ service->set_pool,
+ keys);
+ } T_END;
+ }
if (array_is_created(&service->config_overrides)) {
if (master_service_apply_config_overrides(service, parser,
diff -r 6a1c96577476 -r 4d21bb0fff3a src/lib-master/master-service.c
--- a/src/lib-master/master-service.c Sun Oct 18 15:24:12 2009 -0400
+++ b/src/lib-master/master-service.c Sun Oct 18 15:33:13 2009 -0400
@@ -205,7 +205,7 @@ bool master_service_parse_option(struct
array_append(&service->config_overrides, &arg, 1);
break;
case 'O':
- service->default_settings = TRUE;
+ service->flags |= MASTER_SERVICE_FLAG_NO_CONFIG_SETTINGS;
break;
case 's':
if ((i = atoi(arg)) < 0)
diff -r 6a1c96577476 -r 4d21bb0fff3a src/lib-master/master-service.h
--- a/src/lib-master/master-service.h Sun Oct 18 15:24:12 2009 -0400
+++ b/src/lib-master/master-service.h Sun Oct 18 15:33:13 2009 -0400
@@ -13,7 +13,11 @@ enum master_service_flags {
MASTER_SERVICE_FLAG_DONT_LOG_TO_STDERR = 0x04,
/* Service is going to do multiple configuration lookups,
keep the connection to config service open. */
- MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN = 0x08
+ MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN = 0x08,
+ /* Don't read settings by executing config binary */
+ MASTER_SERVICE_FLAG_NO_CONFIG_SETTINGS = 0x10,
+ /* Don't read settings from environment */
+ MASTER_SERVICE_FLAG_NO_ENV_SETTINGS = 0x20
};
struct master_service_connection {
More information about the dovecot-cvs
mailing list