]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/timesync/timesyncd-conf.c
2 This file is part of systemd.
4 Copyright 2014 Kay Sievers, Lennart Poettering
6 systemd is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation; either version 2.1 of the License, or
9 (at your option) any later version.
11 systemd is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public License
17 along with systemd; If not, see <http://www.gnu.org/licenses/>.
20 #include "alloc-util.h"
22 #include "extract-word.h"
23 #include "string-util.h"
24 #include "timesyncd-conf.h"
25 #include "timesyncd-manager.h"
26 #include "timesyncd-server.h"
28 int manager_parse_server_string(Manager
*m
, ServerType type
, const char *string
) {
35 first
= type
== SERVER_FALLBACK
? m
->fallback_servers
: m
->system_servers
;
37 if (type
== SERVER_FALLBACK
)
38 m
->have_fallbacks
= true;
41 _cleanup_free_
char *word
= NULL
;
45 r
= extract_first_word(&string
, &word
, NULL
, 0);
47 return log_error_errno(r
, "Failed to parse timesyncd server syntax \"%s\": %m", string
);
51 /* Filter out duplicates */
52 LIST_FOREACH(names
, n
, first
)
53 if (streq_ptr(n
->string
, word
)) {
61 r
= server_name_new(m
, NULL
, type
, word
);
69 int manager_parse_fallback_string(Manager
*m
, const char *string
) {
70 if (m
->have_fallbacks
)
73 return manager_parse_server_string(m
, SERVER_FALLBACK
, string
);
76 int config_parse_servers(
81 unsigned section_line
,
88 Manager
*m
= userdata
;
96 manager_flush_server_names(m
, ltype
);
98 r
= manager_parse_server_string(m
, ltype
, rvalue
);
100 log_syntax(unit
, LOG_ERR
, filename
, line
, r
, "Failed to parse NTP server string '%s'. Ignoring.", rvalue
);
108 int manager_parse_config_file(Manager
*m
) {
111 return config_parse_many_nulstr(PKGSYSCONFDIR
"/timesyncd.conf",
112 CONF_PATHS_NULSTR("systemd/timesyncd.conf.d"),
114 config_item_perf_lookup
, timesyncd_gperf_lookup
,