chiark / gitweb /
timedated: introduce systemd-timedated-ntp.target which is controlled by timedated...
authorLennart Poettering <lennart@poettering.net>
Wed, 25 Apr 2012 14:49:02 +0000 (16:49 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 25 Apr 2012 14:49:02 +0000 (16:49 +0200)
We shouldn't hardcode the name of the NTP implementation in the
timedated mechanism, especially since Fedora currently switched from NTP
to chrony.

This patch introduces a new target that is enabled/disabled instead of
the actual NTP implementation. The various NTP implementations should
then add .wants/ symlinks to their services and BindTo back to the
target, so that their implementations are started/stopped jointly with
the target.

https://bugzilla.redhat.com/show_bug.cgi?id=815748

Makefile.am
src/timedate/timedated.c
units/systemd-timedated-ntp.target [new file with mode: 0644]

index b503b01..bf09517 100644 (file)
@@ -297,7 +297,8 @@ dist_systemunit_DATA = \
        units/systemd-ask-password-console.path \
        units/syslog.target \
        units/systemd-udev-control.socket \
-       units/systemd-udev-kernel.socket
+       units/systemd-udev-kernel.socket \
+       units/systemd-timedated-ntp.target
 
 nodist_systemunit_DATA = \
        units/getty@.service \
index 4fbee7c..7a51101 100644 (file)
@@ -304,7 +304,7 @@ static int write_data_local_rtc(void) {
 
 static int read_ntp(DBusConnection *bus) {
         DBusMessage *m = NULL, *reply = NULL;
-        const char *name = "ntpd.service", *s;
+        const char *name = "systemd-timedated-ntp.target", *s;
         DBusError error;
         int r;
 
@@ -374,7 +374,7 @@ finish:
 
 static int start_ntp(DBusConnection *bus, DBusError *error) {
         DBusMessage *m = NULL, *reply = NULL;
-        const char *name = "ntpd.service", *mode = "replace";
+        const char *name = "systemd-timedated-ntp.target", *mode = "replace";
         int r;
 
         assert(bus);
@@ -421,7 +421,7 @@ finish:
 
 static int enable_ntp(DBusConnection *bus, DBusError *error) {
         DBusMessage *m = NULL, *reply = NULL;
-        const char * const names[] = { "ntpd.service", NULL };
+        const char * const names[] = { "systemd-timedated-ntp.target", NULL };
         int r;
         DBusMessageIter iter;
         dbus_bool_t f = FALSE, t = TRUE;
diff --git a/units/systemd-timedated-ntp.target b/units/systemd-timedated-ntp.target
new file mode 100644 (file)
index 0000000..1284248
--- /dev/null
@@ -0,0 +1,17 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+# This target is enabled/disabled via the timedated mechanism when the
+# user asks for it via the UI. NTP implementations should hook
+# themselves into this target via .wants/ symlinks, and then add
+# BindTo= on this target so that they are stopped when it goes away.
+
+[Unit]
+Description=Network Time Protocol
+
+[Install]
+WantedBy=multi-user.target