projects
/
platform
/
upstream
/
connman.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e879732
)
clock: Add support for retrieving time and timezone properties
author
Marcel Holtmann
<marcel@holtmann.org>
Mon, 18 Apr 2011 20:08:41 +0000
(13:08 -0700)
committer
Marcel Holtmann
<marcel@holtmann.org>
Mon, 18 Apr 2011 20:08:41 +0000
(13:08 -0700)
src/clock.c
patch
|
blob
|
history
diff --git
a/src/clock.c
b/src/clock.c
index
9cad029
..
36440f3
100644
(file)
--- a/
src/clock.c
+++ b/
src/clock.c
@@
-23,6
+23,8
@@
#include <config.h>
#endif
#include <config.h>
#endif
+#include <sys/time.h>
+
#include <gdbus.h>
#include "connman.h"
#include <gdbus.h>
#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 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)
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;
{
DBusMessage *reply;
DBusMessageIter array, dict;
+ struct timeval tv;
const char *str;
DBG("conn %p", conn);
const char *str;
DBG("conn %p", conn);
@@
-122,11
+126,22
@@
static DBusMessage *get_properties(DBusConnection *conn,
connman_dbus_dict_open(&array, &dict);
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);
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",
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;
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,
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);
dbus_connection_unref(connection);
+ g_free(timezone_config);
g_strfreev(timeservers_config);
}
g_strfreev(timeservers_config);
}