chiark / gitweb /
core: drop support for old per-distro configuration files for console, hostname,...
[elogind.git] / src / timedate / timedated.c
index 7eed31c477e73a0670477cd5c71f061e8b608914..fdb4335464fd6dbfe1981d86b2b412568498592e 100644 (file)
@@ -176,15 +176,6 @@ static int read_data(void) {
                 }
         }
 
-#ifdef TARGET_FEDORA
-        r = parse_env_file("/etc/sysconfig/clock", NEWLINE,
-                           "ZONE", &tz.zone,
-                           NULL);
-
-        if (r < 0 && r != -ENOENT)
-                log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r));
-#endif
-
 #ifdef HAVE_DEBIAN
         r = read_one_line_file("/etc/timezone", &tz.zone);
         if (r < 0) {
@@ -208,19 +199,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;
         }
 
@@ -232,14 +214,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;
 }
 
@@ -696,13 +670,13 @@ static DBusHandlerResult timedate_message_handler(
                                 return bus_send_error_reply(connection, message, NULL, r);
                         }
 
+                        /* 2. Tell the kernel our time zone */
+                        hwclock_set_timezone(NULL);
+
                         if (tz.local_rtc) {
                                 struct timespec ts;
                                 struct tm *tm;
 
-                                /* 2. Teach kernel new timezone */
-                                hwclock_apply_localtime_delta(NULL);
-
                                 /* 3. Sync RTC from system clock, with the new delta */
                                 assert_se(clock_gettime(CLOCK_REALTIME, &ts) == 0);
                                 assert_se(tm = localtime(&ts.tv_sec));
@@ -710,7 +684,7 @@ static DBusHandlerResult timedate_message_handler(
                         }
 
                         log_struct(LOG_INFO,
-                                   "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(SD_MESSAGE_TIMEZONE_CHANGE),
+                                   MESSAGE_ID(SD_MESSAGE_TIMEZONE_CHANGE),
                                    "TIMEZONE=%s", tz.zone,
                                    "MESSAGE=Changed timezone to '%s'.", tz.zone,
                                    NULL);
@@ -753,11 +727,8 @@ static DBusHandlerResult timedate_message_handler(
                                 return bus_send_error_reply(connection, message, NULL, r);
                         }
 
-                        /* 2. Teach kernel new timezone */
-                        if (tz.local_rtc)
-                                hwclock_apply_localtime_delta(NULL);
-                        else
-                                hwclock_reset_localtime_delta();
+                        /* 2. Tell the kernel our time zone */
+                        hwclock_set_timezone(NULL);
 
                         /* 3. Synchronize clocks */
                         assert_se(clock_gettime(CLOCK_REALTIME, &ts) == 0);
@@ -855,7 +826,7 @@ static DBusHandlerResult timedate_message_handler(
                         hwclock_set_time(tm);
 
                         log_struct(LOG_INFO,
-                                   "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(SD_MESSAGE_TIME_CHANGE),
+                                   MESSAGE_ID(SD_MESSAGE_TIME_CHANGE),
                                    "REALTIME=%llu", (unsigned long long) timespec_load(&ts),
                                    "MESSAGE=Changed local time to %s", ctime(&ts.tv_sec),
                                    NULL);
@@ -948,7 +919,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);
@@ -980,7 +951,7 @@ static int connect_bus(DBusConnection **_bus) {
 fail:
         dbus_connection_close(bus);
         dbus_connection_unref(bus);
-
+fail2:
         dbus_error_free(&error);
 
         return r;
@@ -1035,7 +1006,7 @@ int main(int argc, char *argv[]) {
 
                 if (!exiting && remain_until < now(CLOCK_MONOTONIC)) {
                         exiting = true;
-                        bus_async_unregister_and_exit(bus, "org.freedesktop.hostname1");
+                        bus_async_unregister_and_exit(bus, "org.freedesktop.timedated1");
                 }
         }