remove references to deprecated tzfile.h, use previously defined consts
[systembsd.git] / src / interfaces / timedated / timedated.c
index 59ed12bc60b3c32f31208eb75e6e1182288b9631..cea5b1a3049b430e315763d744fb1cf9aab23bc7 100644 (file)
@@ -24,7 +24,6 @@
 #include <errno.h>
 #include <time.h>
 #include <string.h>
-#include <tzfile.h>
 
 #include <glib/gprintf.h>
 #include <glib-unix.h>
@@ -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() {
 
@@ -396,45 +396,49 @@ our_get_timezone() {
         if(hash_to_match)
             g_free(hash_to_match);
     }
-
-    
-
     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
 our_get_ntp() {
  
-    const gboolean ret = FALSE;
+    int system_ret;
 
-    return ret;
+    system_ret = system("/etc/rc.d/ntpd check > /dev/null 2>&1");
+
+    if(system_ret)
+        return FALSE;
+
+    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() {
 
@@ -443,6 +447,7 @@ our_get_time_usec() {
     return ret;
 }
 
+/* undocumented feature present in systemd */
 guint64
 our_get_rtc_time_usec() {
 
@@ -468,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());
@@ -476,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",