From c797594a2bf5720a40261530255d5e403ccbb4a9 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Mon, 18 Apr 2011 13:08:41 -0700 Subject: [PATCH] clock: Add support for retrieving time and timezone properties --- src/clock.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/clock.c b/src/clock.c index 9cad029..36440f3 100644 --- a/src/clock.c +++ b/src/clock.c @@ -23,6 +23,8 @@ #include #endif +#include + #include #include "connman.h" @@ -42,6 +44,7 @@ enum timezone_updates { static enum time_updates time_updates_config = TIME_UPDATES_AUTO; static enum timezone_updates timezone_updates_config = TIMEZONE_UPDATES_AUTO; +static char *timezone_config = NULL; static char **timeservers_config = NULL; static const char *time_updates2string(enum time_updates value) @@ -110,6 +113,7 @@ static DBusMessage *get_properties(DBusConnection *conn, { DBusMessage *reply; DBusMessageIter array, dict; + struct timeval tv; const char *str; DBG("conn %p", conn); @@ -122,11 +126,22 @@ static DBusMessage *get_properties(DBusConnection *conn, connman_dbus_dict_open(&array, &dict); + if (gettimeofday(&tv, NULL) == 0) { + dbus_uint64_t val = tv.tv_sec; + + connman_dbus_dict_append_basic(&dict, "Time", + DBUS_TYPE_UINT64, &val); + } + str = time_updates2string(time_updates_config); if (str != NULL) connman_dbus_dict_append_basic(&dict, "TimeUpdates", DBUS_TYPE_STRING, &str); + if (timezone_config != NULL) + connman_dbus_dict_append_basic(&dict, "Timezone", + DBUS_TYPE_STRING, &timezone_config); + str = timezone_updates2string(timezone_updates_config); if (str != NULL) connman_dbus_dict_append_basic(&dict, "TimezoneUpdates", @@ -264,6 +279,8 @@ int __connman_clock_init(void) if (connection == NULL) return -1; + timezone_config = __connman_timezone_lookup(); + g_dbus_register_interface(connection, CONNMAN_MANAGER_PATH, CONNMAN_CLOCK_INTERFACE, clock_methods, clock_signals, @@ -284,5 +301,6 @@ void __connman_clock_cleanup(void) dbus_connection_unref(connection); + g_free(timezone_config); g_strfreev(timeservers_config); } -- 2.7.4