From: Timo Sirainen Date: Tue, 7 Feb 2023 21:55:26 +0000 (+0200) Subject: lib-master: Change master_service_set() API X-Git-Tag: 2.4.0~2258 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=256c5279ce64d8800ac2564291540ff62243c308;p=thirdparty%2Fdovecot%2Fcore.git lib-master: Change master_service_set() API It wasn't currently used by core, and this API makes it close to what we want it to be eventually. --- diff --git a/src/lib-master/master-service-settings.c b/src/lib-master/master-service-settings.c index e16de96bf7..179b1913a6 100644 --- a/src/lib-master/master-service-settings.c +++ b/src/lib-master/master-service-settings.c @@ -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, diff --git a/src/lib-master/master-service-settings.h b/src/lib-master/master-service-settings.h index 3d933fd677..7843bf9fb0 100644 --- a/src/lib-master/master-service-settings.h +++ b/src/lib-master/master-service-settings.h @@ -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. */