chiark / gitweb /
systemctl: try to reload daemon after enable/disable only when not running in a chroot
[elogind.git] / src / timedate / timedated.c
index 40ba25509059036ee359839da07a4da36f8ecd70..80c24eb62b029f67470ddd3f919f350711d15b44 100644 (file)
@@ -35,6 +35,8 @@
 #include "hwclock.h"
 #include "conf-files.h"
 #include "path-util.h"
+#include "fileio-label.h"
+#include "label.h"
 
 #define NULL_ADJTIME_UTC "0.0 0 0\n0\nUTC\n"
 #define NULL_ADJTIME_LOCAL "0.0 0 0\n0\nLOCAL\n"
@@ -176,14 +178,6 @@ static int read_data(void) {
                 }
         }
 
-#ifdef HAVE_DEBIAN
-        r = read_one_line_file("/etc/timezone", &tz.zone);
-        if (r < 0) {
-                if (r != -ENOENT)
-                        log_warning("Failed to read /etc/timezone: %s", strerror(-r));
-        }
-#endif
-
 have_timezone:
         if (isempty(tz.zone)) {
                 free(tz.zone);
@@ -199,19 +193,10 @@ static int write_data_timezone(void) {
         int r = 0;
         _cleanup_free_ char *p = NULL;
 
-#ifdef TARGET_DEBIAN
-        struct stat st;
-#endif
-
         if (!tz.zone) {
                 if (unlink("/etc/localtime") < 0 && errno != ENOENT)
                         r = -errno;
 
-#ifdef TARGET_DEBIAN
-                if (unlink("/etc/timezone") < 0 && errno != ENOENT)
-                        r = -errno;
-#endif
-
                 return r;
         }
 
@@ -223,14 +208,6 @@ static int write_data_timezone(void) {
         if (r < 0)
                 return r;
 
-#ifdef TARGET_DEBIAN
-        if (stat("/etc/timezone", &st) == 0 && S_ISREG(st.st_mode)) {
-                r = write_one_line_file_atomic("/etc/timezone", tz.zone);
-                if (r < 0)
-                        return r;
-        }
-#endif
-
         return 0;
 }
 
@@ -294,8 +271,8 @@ static int write_data_local_rtc(void) {
                         return 0;
                 }
         }
-
-        r = write_one_line_file_atomic("/etc/adjtime", w);
+        label_init("/etc");
+        r = write_one_line_file_atomic_label("/etc/adjtime", w);
         free(w);
 
         return r;
@@ -305,7 +282,7 @@ static char** get_ntp_services(void) {
         char **r = NULL, **files, **i;
         int k;
 
-        k = conf_files_list(&files, ".list",
+        k = conf_files_list(&files, ".list", NULL,
                             "/etc/systemd/ntp-units.d",
                             "/run/systemd/ntp-units.d",
                             "/usr/local/lib/systemd/ntp-units.d",
@@ -936,7 +913,7 @@ static int connect_bus(DBusConnection **_bus) {
         if (!bus) {
                 log_error("Failed to get system D-Bus connection: %s", bus_error_message(&error));
                 r = -ECONNREFUSED;
-                goto fail;
+                goto fail2;
         }
 
         dbus_connection_set_exit_on_disconnect(bus, FALSE);
@@ -968,7 +945,7 @@ static int connect_bus(DBusConnection **_bus) {
 fail:
         dbus_connection_close(bus);
         dbus_connection_unref(bus);
-
+fail2:
         dbus_error_free(&error);
 
         return r;