dovecot-2.0: lib-master: Added master_service_set_has_config_ove...
dovecot at dovecot.org
dovecot at dovecot.org
Mon Apr 5 03:57:25 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/cdef53978a77
changeset: 11056:cdef53978a77
user: Timo Sirainen <tss at iki.fi>
date: Mon Apr 05 03:56:57 2010 +0300
description:
lib-master: Added master_service_set_has_config_override().
diffstat:
src/lib-master/master-service-settings.c | 31 +++++++++++++++++++++++++++++++
src/lib-master/master-service-settings.h | 4 ++++
2 files changed, 35 insertions(+), 0 deletions(-)
diffs (50 lines):
diff -r 49c0232047f0 -r cdef53978a77 src/lib-master/master-service-settings.c
--- a/src/lib-master/master-service-settings.c Mon Apr 05 03:56:46 2010 +0300
+++ b/src/lib-master/master-service-settings.c Mon Apr 05 03:56:57 2010 +0300
@@ -437,3 +437,34 @@
{
return settings_parse_line(service->set_parser, line);
}
+
+bool master_service_set_has_config_override(struct master_service *service,
+ const char *key)
+{
+ const char *const *override, *key_root;
+ bool ret;
+
+ if (!array_is_created(&service->config_overrides))
+ return FALSE;
+
+ key_root = settings_parse_unalias(service->set_parser, key);
+ if (key_root == NULL)
+ key_root = key;
+
+ array_foreach(&service->config_overrides, override) {
+ T_BEGIN {
+ const char *okey, *okey_root;
+
+ okey = t_strcut(*override, '=');
+ okey_root = settings_parse_unalias(service->set_parser,
+ okey);
+ if (okey_root == NULL)
+ okey_root = okey;
+ ret = strcmp(okey_root, key_root) == 0;
+ } T_END;
+
+ if (ret)
+ return TRUE;
+ }
+ return FALSE;
+}
diff -r 49c0232047f0 -r cdef53978a77 src/lib-master/master-service-settings.h
--- a/src/lib-master/master-service-settings.h Mon Apr 05 03:56:46 2010 +0300
+++ b/src/lib-master/master-service-settings.h Mon Apr 05 03:56:57 2010 +0300
@@ -66,4 +66,8 @@
int master_service_set(struct master_service *service, const char *line);
+/* Returns TRUE if -o key=value parameter was used. Setting keys in overrides
+ and parameter are unaliased before comparing. */
+bool master_service_set_has_config_override(struct master_service *service,
+ const char *key);
#endif
More information about the dovecot-cvs
mailing list