]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Change master_service_set() API
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 7 Feb 2023 21:55:26 +0000 (23:55 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 20 Nov 2023 12:20:55 +0000 (14:20 +0200)
It wasn't currently used by core, and this API makes it close to what we
want it to be eventually.

src/lib-master/master-service-settings.c
src/lib-master/master-service-settings.h

index e16de96bf77ae7e35e9c5ad476875b887ffbf2eb..179b1913a641c0dad5081dc8538f31afdd070251 100644 (file)
@@ -962,9 +962,16 @@ master_service_settings_get_or_fatal(struct event *event,
        return set;
 }
 
-int master_service_set(struct master_service *service, const char *line)
+int master_service_set(struct setting_parser_context *set_parser,
+                      const char *key, const char *value,
+                      const char **error_r)
 {
-       return settings_parse_line(service->set_parser, line);
+       int ret;
+
+       ret = settings_parse_keyvalue(set_parser, key, value);
+       if (ret <= 0)
+               *error_r = settings_parser_get_error(set_parser);
+       return ret;
 }
 
 bool master_service_set_has_config_override(struct master_service *service,
index 3d933fd677078918d1d393cfff1e358432566fd4..7843bf9fb0451f859d5cfb4ac989de070f9e688e 100644 (file)
@@ -191,7 +191,11 @@ master_service_settings_get_or_fatal(struct event *event,
                } \
        } STMT_END
 
-int master_service_set(struct master_service *service, const char *line);
+/* Set key=value to settings parser. Returns 1 on success, 0 if key is unknown,
+   -1 on error. The error string is returned on <= 0. */
+int master_service_set(struct setting_parser_context *set_parser,
+                      const char *key, const char *value,
+                      const char **error_r);
 
 /* Returns TRUE if -o key=value parameter was used. Setting keys in overrides
    and parameter are unaliased before comparing. */