From: John Ernberg <[email protected]>

This matches the behavior described by the documentation and the signal
value described in the introspection. This was causing a headache when
using stricter D-Bus wrappers like dbus-c++.
---
 src/gprs.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/gprs.c b/src/gprs.c
index ba797dd..b583c28 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -1879,7 +1879,17 @@ static void send_context_added_signal(struct ofono_gprs 
*gprs,
        const char *path;
        DBusMessage *signal;
        DBusMessageIter iter;
+       DBusMessageIter var;
        DBusMessageIter dict;
+       char typesig[5];
+       char arraysig[6];
+
+       arraysig[0] = DBUS_TYPE_ARRAY;
+       arraysig[1] = typesig[0] = DBUS_DICT_ENTRY_BEGIN_CHAR;
+       arraysig[2] = typesig[1] = DBUS_TYPE_STRING;
+       arraysig[3] = typesig[2] = DBUS_TYPE_VARIANT;
+       arraysig[4] = typesig[3] = DBUS_DICT_ENTRY_END_CHAR;
+       arraysig[5] = typesig[4] = '\0';
 
        path = __ofono_atom_get_path(gprs->atom);
        signal = dbus_message_new_signal(path,
@@ -1893,11 +1903,15 @@ static void send_context_added_signal(struct ofono_gprs 
*gprs,
        path = context->path;
        dbus_message_iter_append_basic(&iter, DBUS_TYPE_OBJECT_PATH, &path);
 
-       dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
-                                       OFONO_PROPERTIES_ARRAY_SIGNATURE,
+       dbus_message_iter_open_container(&iter, DBUS_TYPE_VARIANT,
+                                       arraysig, &var);
+
+       dbus_message_iter_open_container(&var, DBUS_TYPE_ARRAY,
+                                       typesig,
                                        &dict);
        append_context_properties(context, &dict);
-       dbus_message_iter_close_container(&iter, &dict);
+       dbus_message_iter_close_container(&var, &dict);
+       dbus_message_iter_close_container(&iter, &var);
 
        g_dbus_send_message(conn, signal);
 }
-- 
1.9.1
_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono

Reply via email to