From 19ebd2aba6e6276b8fcbe86e4a47a4257e32eb43 Mon Sep 17 00:00:00 2001 From: Sascha Kruse Date: Sun, 24 Jun 2012 19:20:08 +0200 Subject: [PATCH] add support for org.freedesktop.DBus.Introspectable.Introspect Some clients (e.g Dropbox) rely on this. --- dunst_dbus.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/dunst_dbus.c b/dunst_dbus.c index acf5cd7..10e5cbd 100644 --- a/dunst_dbus.c +++ b/dunst_dbus.c @@ -11,6 +11,64 @@ DBusConnection *dbus_conn; dbus_uint32_t dbus_serial = 0; +static const char *introspect = "" + +"" +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +""; + +void dbus_introspect(DBusMessage * dmsg) { + DBusMessage *reply; + DBusMessageIter args; + + reply = dbus_message_new_method_return(dmsg); + + dbus_message_iter_init_append(reply, &args); + dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &introspect); + dbus_connection_send(dbus_conn, reply, &dbus_serial); + + dbus_message_unref(reply); + +} + void initdbus(void) { int ret; @@ -63,6 +121,10 @@ dbus_poll(void) { return; } + if (dbus_message_is_method_call(dbus_msg,"org.freedesktop.DBus.Introspectable", "Introspect")) { + dbus_introspect(dbus_msg); + } + if(dbus_message_is_method_call(dbus_msg, "org.freedesktop.Notifications","Notify")) { notify(dbus_msg);