From 14f8f793b6a3de55e352b4b7d2099fed537e71ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jeremy=20Lain=C3=A9?= Date: Mon, 15 Dec 2008 11:25:57 +0100 Subject: dnsmasq-dbus: add patch for DBus introspection --- packages/dnsmasq/dnsmasq-dbus_2.46.bb | 3 ++ packages/dnsmasq/files/dbus_introspection.patch | 63 +++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 packages/dnsmasq/files/dbus_introspection.patch (limited to 'packages/dnsmasq') diff --git a/packages/dnsmasq/dnsmasq-dbus_2.46.bb b/packages/dnsmasq/dnsmasq-dbus_2.46.bb index d03dbdb06e..f6070a1987 100644 --- a/packages/dnsmasq/dnsmasq-dbus_2.46.bb +++ b/packages/dnsmasq/dnsmasq-dbus_2.46.bb @@ -2,9 +2,12 @@ require dnsmasq.inc +PR = "r1" DEPENDS = "dbus" EXTRA_OEMAKE = "COPTS=-DHAVE_DBUS" +SRC_URI += "file://dbus_introspection.patch;patch=1" + do_install_append () { install -d ${D}${sysconfdir}/dbus-1/system.d install -m 644 dbus/dnsmasq.conf ${D}${sysconfdir}/dbus-1/system.d/ diff --git a/packages/dnsmasq/files/dbus_introspection.patch b/packages/dnsmasq/files/dbus_introspection.patch new file mode 100644 index 0000000000..52cbb6e25b --- /dev/null +++ b/packages/dnsmasq/files/dbus_introspection.patch @@ -0,0 +1,63 @@ +diff -urN dnsmasq-2.46.orig/src/dbus.c dnsmasq-2.46/src/dbus.c +--- dnsmasq-2.46.orig/src/dbus.c 2008-11-14 21:02:08.000000000 +0100 ++++ dnsmasq-2.46/src/dbus.c 2008-12-15 10:45:48.000000000 +0100 +@@ -21,6 +21,42 @@ + #define DBUS_API_SUBJECT_TO_CHANGE + #include + ++const char* introspection_xml = ++"\n" ++"\n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++" \n" ++"\n"; ++ + struct watch { + DBusWatch *watch; + struct watch *next; +@@ -229,7 +265,15 @@ + { + char *method = (char *)dbus_message_get_member(message); + +- if (strcmp(method, "GetVersion") == 0) ++ if (dbus_message_is_method_call(message, DBUS_INTERFACE_INTROSPECTABLE, "Introspect")) ++ { ++ DBusMessage *reply = dbus_message_new_method_return(message); ++ ++ dbus_message_append_args(reply, DBUS_TYPE_STRING, &introspection_xml, DBUS_TYPE_INVALID); ++ dbus_connection_send (connection, reply, NULL); ++ dbus_message_unref (reply); ++ } ++ else if (strcmp(method, "GetVersion") == 0) + { + char *v = VERSION; + DBusMessage *reply = dbus_message_new_method_return(message); -- cgit v1.2.3