chiark / gitweb /
use linux/sched.h instead of sched.h for older glibc
[elogind.git] / dbus.c
diff --git a/dbus.c b/dbus.c
index 17987210e6b2067d683959825dda8a5b31da03ec..caafc975709024da5decb85f9cceff552204444a 100644 (file)
--- a/dbus.c
+++ b/dbus.c
@@ -436,7 +436,7 @@ DBusHandlerResult bus_default_message_handler(Manager *m, DBusMessage *message,
                         if (!streq(p->interface, interface))
                                 continue;
 
-                        if (!dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, "sv" , &sub2) ||
+                        if (!dbus_message_iter_open_container(&sub, DBUS_TYPE_DICT_ENTRY, NULL, &sub2) ||
                             !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_STRING, &p->property) ||
                             !dbus_message_iter_open_container(&sub2, DBUS_TYPE_VARIANT, p->signature, &sub3))
                                 goto oom;
@@ -561,7 +561,9 @@ int bus_property_append_string(Manager *m, DBusMessageIter *i, const char *prope
         assert(m);
         assert(i);
         assert(property);
-        assert(t);
+
+        if (!t)
+                t = "";
 
         if (!dbus_message_iter_append_basic(i, DBUS_TYPE_STRING, &t))
                 return -ENOMEM;
@@ -606,3 +608,27 @@ int bus_property_append_bool(Manager *m, DBusMessageIter *i, const char *propert
 
         return 0;
 }
+
+int bus_property_append_uint64(Manager *m, DBusMessageIter *i, const char *property, void *data) {
+        assert(m);
+        assert(i);
+        assert(property);
+        assert(data);
+
+        if (!dbus_message_iter_append_basic(i, DBUS_TYPE_UINT64, data))
+                return -ENOMEM;
+
+        return 0;
+}
+
+int bus_property_append_uint32(Manager *m, DBusMessageIter *i, const char *property, void *data) {
+        assert(m);
+        assert(i);
+        assert(property);
+        assert(data);
+
+        if (!dbus_message_iter_append_basic(i, DBUS_TYPE_UINT32, data))
+                return -ENOMEM;
+
+        return 0;
+}