summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Bradford <rob@linux.intel.com>2011-08-15 15:24:27 +0100
committerRob Bradford <rob@linux.intel.com>2011-08-15 15:29:58 +0100
commit38f1973d58c65639fe83de7918b5c765933302cd (patch)
tree6cc44c78d886525e00f0467b45a1bc19f2418be9
parent6736f42ce5172b44083a9089ff4a777ed1c5bdc3 (diff)
downloadgconf-38f1973d58c65639fe83de7918b5c765933302cd.tar.gz
gconf-dbus: Support older daemon returning string for object path
Enhances: https://bugzilla.gnome.org/show_bug.cgi?id=655656
-rw-r--r--gconf/gconf-dbus.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c
index 4b74bb8e..335bc229 100644
--- a/gconf/gconf-dbus.c
+++ b/gconf/gconf-dbus.c
@@ -543,10 +543,23 @@ ensure_database (GConfEngine *conf,
if (gconf_handle_dbus_exception (reply, &error, err))
return FALSE;
- dbus_message_get_args (reply,
- NULL,
- DBUS_TYPE_OBJECT_PATH, &db,
- DBUS_TYPE_INVALID);
+ /* Previously we used "s" for the type here - this is for compatability
+ * See: https://bugzilla.gnome.org/show_bug.cgi?id=655656 */
+ if (g_str_equal (dbus_message_get_signature (reply), "s"))
+ {
+ g_warning (G_STRLOC ": Using compatability for older daemon");
+ dbus_message_get_args (reply,
+ NULL,
+ DBUS_TYPE_STRING, &db,
+ DBUS_TYPE_INVALID);
+ }
+ else
+ {
+ dbus_message_get_args (reply,
+ NULL,
+ DBUS_TYPE_OBJECT_PATH, &db,
+ DBUS_TYPE_INVALID);
+ }
if (db == NULL)
{