From: Yu Watanabe Date: Tue, 16 Apr 2024 01:28:06 +0000 (+0900) Subject: conf-parser: move config_parse_timezone() to conf-parser.[ch] X-Git-Tag: v256-rc1~122^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F32290%2Fhead;p=thirdparty%2Fsystemd.git conf-parser: move config_parse_timezone() to conf-parser.[ch] Even though it is currently only used by networkd, the parser itself is quite generic. Let's move it to the shared library. --- diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index 8c52438092b..15d5721866a 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -923,40 +923,6 @@ int config_parse_stacked_netdev( return 0; } -int config_parse_timezone( - const char *unit, - const char *filename, - unsigned line, - const char *section, - unsigned section_line, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - char **tz = ASSERT_PTR(data); - int r; - - assert(filename); - assert(lvalue); - assert(rvalue); - - if (isempty(rvalue)) { - *tz = mfree(*tz); - return 0; - } - - r = verify_timezone(rvalue, LOG_WARNING); - if (r < 0) { - log_syntax(unit, LOG_WARNING, filename, line, r, - "Timezone is not valid, ignoring assignment: %s", rvalue); - return 0; - } - - return free_and_strdup_warn(tz, rvalue); -} - int config_parse_required_for_online( const char *unit, const char *filename, diff --git a/src/network/networkd-network.h b/src/network/networkd-network.h index 9d82df00059..dd938e525aa 100644 --- a/src/network/networkd-network.h +++ b/src/network/networkd-network.h @@ -424,7 +424,6 @@ bool network_has_static_ipv6_configurations(Network *network); CONFIG_PARSER_PROTOTYPE(config_parse_stacked_netdev); CONFIG_PARSER_PROTOTYPE(config_parse_tunnel); -CONFIG_PARSER_PROTOTYPE(config_parse_timezone); CONFIG_PARSER_PROTOTYPE(config_parse_required_for_online); CONFIG_PARSER_PROTOTYPE(config_parse_required_family_for_online); CONFIG_PARSER_PROTOTYPE(config_parse_keep_configuration); diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index e2d3b65f88d..277f4ee42fd 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -1979,3 +1979,37 @@ int config_parse_unsigned_bounded( DEFINE_CONFIG_PARSE(config_parse_percent, parse_percent, "Failed to parse percent value"); DEFINE_CONFIG_PARSE(config_parse_permyriad, parse_permyriad, "Failed to parse permyriad value"); DEFINE_CONFIG_PARSE_PTR(config_parse_sec_fix_0, parse_sec_fix_0, usec_t, "Failed to parse time value"); + +int config_parse_timezone( + const char *unit, + const char *filename, + unsigned line, + const char *section, + unsigned section_line, + const char *lvalue, + int ltype, + const char *rvalue, + void *data, + void *userdata) { + + char **tz = ASSERT_PTR(data); + int r; + + assert(filename); + assert(lvalue); + assert(rvalue); + + if (isempty(rvalue)) { + *tz = mfree(*tz); + return 0; + } + + r = verify_timezone(rvalue, LOG_WARNING); + if (r < 0) { + log_syntax(unit, LOG_WARNING, filename, line, r, + "Timezone is not valid, ignoring assignment: %s", rvalue); + return 0; + } + + return free_and_strdup_warn(tz, rvalue); +} diff --git a/src/shared/conf-parser.h b/src/shared/conf-parser.h index 254d6cb70bc..35e203cb127 100644 --- a/src/shared/conf-parser.h +++ b/src/shared/conf-parser.h @@ -250,6 +250,7 @@ CONFIG_PARSER_PROTOTYPE(config_parse_percent); CONFIG_PARSER_PROTOTYPE(config_parse_permyriad); CONFIG_PARSER_PROTOTYPE(config_parse_pid); CONFIG_PARSER_PROTOTYPE(config_parse_sec_fix_0); +CONFIG_PARSER_PROTOTYPE(config_parse_timezone); typedef enum Disabled { DISABLED_CONFIGURATION,