summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2006-12-31 12:20:54 +0000
committerRalf Habacker <ralf.habacker@freenet.de>2006-12-31 12:20:54 +0000
commit3a33c8e294bf1b4338fc81bcd9b0889de3c0e0f0 (patch)
tree3adcf3505402c605c94ae9c128d293fa7545d08c /tools
parent2dae3a600ba5adfa47645438843e9d61b171d019 (diff)
* tools/dbus-monitor.c: gettimeofday() is not available
on windows so we have to provide our own. It's taken from lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
Diffstat (limited to 'tools')
-rw-r--r--tools/dbus-monitor.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/dbus-monitor.c b/tools/dbus-monitor.c
index eb3da072..9f7da5b2 100644
--- a/tools/dbus-monitor.c
+++ b/tools/dbus-monitor.c
@@ -24,13 +24,42 @@
#include <stdlib.h>
#include <string.h>
+#ifdef DBUS_WIN
+#include <winsock2.h>
+#undef interface
+#else
#include <sys/time.h>
+#endif
+
#include <time.h>
#include <signal.h>
#include "dbus-print-message.h"
+#ifdef DBUS_WIN
+
+/* gettimeofday is not defined on windows */
+#define DBUS_SECONDS_SINCE_1601 11644473600LL
+#define DBUS_USEC_IN_SEC 1000000LL
+
+static int
+gettimeofday (struct timeval *__p,
+ void *__t)
+{
+ union {
+ unsigned long long ns100; /*time since 1 Jan 1601 in 100ns units */
+ FILETIME ft;
+ } now;
+
+ GetSystemTimeAsFileTime (&now.ft);
+ __p->tv_usec = (long) ((now.ns100 / 10LL) % DBUS_USEC_IN_SEC);
+ __p->tv_sec = (long)(((now.ns100 / 10LL) / DBUS_SECONDS_SINCE_1601) - DBUS_SECONDS_SINCE_1601);
+
+ return 0;
+}
+#endif
+
static DBusHandlerResult
monitor_filter_func (DBusConnection *connection,
DBusMessage *message,