Also register for path / on D-Bus master
authorSteven Luo <steven+maemo@steven676.net>
Sun, 7 Aug 2011 00:22:59 +0000 (17:22 -0700)
committerSteven Luo <steven+maemo@steven676.net>
Sun, 7 Aug 2011 00:22:59 +0000 (17:22 -0700)
This lets us work with broken applications like the Fremantle xterm
which direct their D-Bus requests to this path instead of
/com/nokia/osso_browser like they should.

Thanks to t.m.o users laasonen for reporting and Anzah for providing
diagnostic output leading to a fix.

main.c

diff --git a/main.c b/main.c
index 6f6e95a..877ab8b 100644 (file)
--- a/main.c
+++ b/main.c
@@ -131,8 +131,9 @@ static void read_config(void) {
 }
 
 int main() {
-       OssoBrowser *obj_osso_browser, *obj_osso_browser_req;
-       OssoBrowser *obj_osso_browser_sys, *obj_osso_browser_sys_req;
+       OssoBrowser *obj_osso_browser, *obj_osso_browser_sys;
+        OssoBrowser *obj_osso_browser_req, *obj_osso_browser_sys_req;
+       OssoBrowser *obj_osso_browser_root, *obj_osso_browser_sys_root;
        GMainLoop *mainloop;
        GError *error = NULL;
        int reqname_result;
@@ -224,19 +225,25 @@ int main() {
        /* Register ourselves to handle the osso_browser D-Bus methods */
        obj_osso_browser = g_object_new(OSSO_BROWSER_TYPE, NULL);
        obj_osso_browser_req = g_object_new(OSSO_BROWSER_TYPE, NULL);
+       obj_osso_browser_root = g_object_new(OSSO_BROWSER_TYPE, NULL);
        obj_osso_browser_sys = g_object_new(OSSO_BROWSER_TYPE, NULL);
        obj_osso_browser_sys_req = g_object_new(OSSO_BROWSER_TYPE, NULL);
+       obj_osso_browser_sys_root = g_object_new(OSSO_BROWSER_TYPE, NULL);
        dbus_g_connection_register_g_object(ctx.session_bus,
                        "/com/nokia/osso_browser", G_OBJECT(obj_osso_browser));
        dbus_g_connection_register_g_object(ctx.session_bus,
                        "/com/nokia/osso_browser/request",
                        G_OBJECT(obj_osso_browser_req));
+       dbus_g_connection_register_g_object(ctx.session_bus,
+                       "/", G_OBJECT(obj_osso_browser_root));
        dbus_g_connection_register_g_object(ctx.system_bus,
                        "/com/nokia/osso_browser",
                        G_OBJECT(obj_osso_browser_sys));
        dbus_g_connection_register_g_object(ctx.system_bus,
                        "/com/nokia/osso_browser/request",
                        G_OBJECT(obj_osso_browser_sys_req));
+       dbus_g_connection_register_g_object(ctx.system_bus,
+                       "/", G_OBJECT(obj_osso_browser_sys_root));
 
        mainloop = g_main_loop_new(NULL, FALSE);