Fix:binding_dbus:Correct handling of cmd_send_signal arguments
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Mon, 12 Apr 2010 09:28:27 +0000 (09:28 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Mon, 12 Apr 2010 09:28:27 +0000 (09:28 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@3160 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/binding/dbus/binding_dbus.c

index 16b5fc6..d101342 100644 (file)
@@ -1615,12 +1615,14 @@ dbus_cmd_send_signal(struct navit *navit, char *command, struct attr **in, struc
        dbg(0,"enter %s %s %s\n",opath,command,interface);
        msg = dbus_message_new_signal(opath, interface, "signal");
        if (msg) {
-               DBusMessageIter iter1,iter2;
+               DBusMessageIter iter1,iter2,iter3;
                dbus_message_iter_init_append(msg, &iter1);
                dbus_message_iter_open_container(&iter1, DBUS_TYPE_ARRAY, "{sv}", &iter2);
                if (in) {
                        while (*in) {
-                               encode_attr(&iter2, *in);
+                               dbus_message_iter_open_container(&iter2, DBUS_TYPE_DICT_ENTRY, NULL, &iter3);
+                               encode_attr(&iter3, *in);
+                               dbus_message_iter_close_container(&iter2, &iter3);
                                in++;
                        }
                }