X-Git-Url: https://uglyman.kremlin.cc/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Finterfaces%2Ftimedated%2Ftimedated.c;h=cea5b1a3049b430e315763d744fb1cf9aab23bc7;hb=HEAD;hp=dfe5b7347c4a67b2591427909b17ecc4a97dbf34;hpb=1a3832891aadfbe96a6b25e2031c1d3de0467767;p=systembsd.git diff --git a/src/interfaces/timedated/timedated.c b/src/interfaces/timedated/timedated.c index dfe5b73..cea5b1a 100644 --- a/src/interfaces/timedated/timedated.c +++ b/src/interfaces/timedated/timedated.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include @@ -215,7 +214,7 @@ on_handle_set_timezone(Timedate1 *td1_passed_interf, g_ptr_array_add(timedated_freeable, statbuf); g_ptr_array_add(timedated_freeable, tz_target_path); - strlcat(tz_target_path, TZDIR, TZNAME_MAX); + strlcat(tz_target_path, OS_TIMEZONE_PATH, TZNAME_MAX); strlcat(tz_target_path, "/", TZNAME_MAX); strlcat(tz_target_path, proposed_tz, TZNAME_MAX); @@ -252,11 +251,11 @@ on_handle_set_timezone(Timedate1 *td1_passed_interf, memset(statbuf, 0, sizeof statbuf); - if(!lstat(TZDEFAULT, statbuf)) - if(remove(TZDEFAULT)) + if(!lstat(OS_LOCALTIME, statbuf)) + if(remove(OS_LOCALTIME)) return FALSE; - if(symlink(tz_target_path, TZDEFAULT)) + if(symlink(tz_target_path, OS_LOCALTIME)) return FALSE; @@ -286,6 +285,7 @@ on_handle_set_ntp(Timedate1 *td1_passed_interf, gboolean policykit_auth; check_auth_result is_authed; + /* revert to rcctl when 5.7 rolls around */ gint ntpd_notrunning, ntpd_notenabled; /* this logic flip is due to rcctl returning 0 on success, * in this case an error means ntpd is not running or not enabled */ gboolean proposed_ntpstate; @@ -327,34 +327,34 @@ on_handle_set_ntp(Timedate1 *td1_passed_interf, ntpd_notrunning = 0; /* GLib does not bother asserting the passed return value int to zero */ ntpd_notenabled = 0; /* if the program's exit status is also zero, hence this decl. */ - if((ntpd_notrunning = system("rcctl check ntpd > /dev/null 2>&1")) == -1) + if((ntpd_notrunning = system("/etc/rc.d/ntpd check > /dev/null 2>&1")) == -1) return FALSE; - if((ntpd_notenabled = system("rcctl status ntpd > /dev/null 2>&1")) == -1) + if((ntpd_notenabled = system("/etc/rc.d/ntpd status > /dev/null 2>&1")) == -1) return FALSE; if(proposed_ntpstate) { if(ntpd_notrunning) - system("rcctl -f start ntpd > /dev/null 2>&1"); + system("/etc/rc.d/ntpd -f start > /dev/null 2>&1"); if(ntpd_notenabled) - system("rcctl enable ntpd > /dev/null 2>&1"); + system("/etc/rc.d/ntpd enable > /dev/null 2>&1"); } else { if(!ntpd_notrunning) - system("rcctl stop ntpd > /dev/null 2>&1"); + system("/etc/rc.d/ntpd stop > /dev/null 2>&1"); if(!ntpd_notenabled) - system("rcctl disable ntpd > /dev/null 2>&1"); + system("/etc/rc.d/ntpd disable > /dev/null 2>&1"); } timedate1_complete_set_ntp(td1_passed_interf, invoc); return TRUE; } - +/* NOTE: you should be using gobject->set_property() for these ! */ const gchar * our_get_timezone() { @@ -400,21 +400,19 @@ our_get_timezone() { return ret; } -/* Unix time must be in UTC. */ +/* Unix time is in UTC. */ gboolean our_get_local_rtc() { - gboolean ret = FALSE; - - return ret; + return FALSE; } gboolean our_get_can_ntp() { - const gboolean ret = FALSE; + /* ntpd is part of the default install */ - return ret; + return TRUE; } gboolean @@ -422,11 +420,7 @@ our_get_ntp() { int system_ret; - if((system_ret = system("rcctl check ntpd > /dev/null 2>&1")) == -1) { - - g_printf("failed to check NTP status with rcctl\n"); - return FALSE; - } + system_ret = system("/etc/rc.d/ntpd check > /dev/null 2>&1"); if(system_ret) return FALSE; @@ -434,14 +428,17 @@ our_get_ntp() { return TRUE; } +/* undocumented feature present in systemd */ gboolean our_get_ntpsynchronized() { - const gboolean ret = FALSE; + gboolean ntp; + ntp = our_get_ntp(); - return ret; + return ntp; } +/* undocumented feature present in systemd */ guint64 our_get_time_usec() { @@ -450,6 +447,7 @@ our_get_time_usec() { return ret; } +/* undocumented feature present in systemd */ guint64 our_get_rtc_time_usec() { @@ -475,6 +473,7 @@ static void timedated_on_bus_acquired(GDBusConnection *conn, g_signal_connect(timedated_interf, "handle-set-ntp", G_CALLBACK(on_handle_set_ntp), NULL); /* set our properties before export */ + timedate1_set_timezone(timedated_interf, our_get_timezone()); timedate1_set_local_rtc(timedated_interf, our_get_local_rtc()); timedate1_set_can_ntp(timedated_interf, our_get_can_ntp()); @@ -483,6 +482,16 @@ static void timedated_on_bus_acquired(GDBusConnection *conn, timedate1_set_time_usec(timedated_interf, our_get_time_usec()); timedate1_set_rtctime_usec(timedated_interf, our_get_rtc_time_usec()); + /* WIP + + timedated_interf->get_timezone = our_get_timezone(); + timedated_interf->get_local_rtc = our_get_local_rtc(); + timedated_interf->get_can_ntp = our_get_can_ntp(); + timedated_interf->get_ntp = our_get_ntp(); + timedated_interf->get_ntpsynchronized = our_get_ntpsynchronized(); + timedated_interf->get_time_usec = our_get_time_usec(); + timedated_interf->get_rtctime_usec = our_get_rtc_time_usec(); */ + if(!g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(timedated_interf), conn, "/org/freedesktop/timedate1",