diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-10-13 04:01:32 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-10-13 05:04:47 -0500 |
commit | ccf4b34522c83b6f99455fcf73725e88b23ed0e0 (patch) | |
tree | 215eeeb4b2d0d9aaa80177cb82a23447c9a1f786 /src/sim.c | |
parent | 48f8bae93097668de193dcb9bfeee26608db59e1 (diff) | |
download | ofono-ccf4b34522c83b6f99455fcf73725e88b23ed0e0.tar.bz2 |
sim: Use ay return signature for GetIcon
Diffstat (limited to 'src/sim.c')
-rw-r--r-- | src/sim.c | 22 |
1 files changed, 16 insertions, 6 deletions
@@ -727,13 +727,23 @@ static void sim_get_image_cb(gboolean ok, const char *xpm, int xpm_len, { struct ofono_sim *sim = userdata; DBusMessage *reply; + DBusMessageIter iter, array; - if (!ok) + if (ok == FALSE) { reply = __ofono_error_failed(sim->pending); - else - reply = g_dbus_create_reply(sim->pending, - DBUS_TYPE_STRING, &xpm, - DBUS_TYPE_INVALID); + __ofono_dbus_pending_reply(&sim->pending, reply); + return; + } + + reply = dbus_message_new_method_return(sim->pending); + dbus_message_iter_init_append(reply, &iter); + + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, + DBUS_TYPE_BYTE_AS_STRING, &array); + + dbus_message_iter_append_fixed_array(&array, DBUS_TYPE_BYTE, + &xpm, xpm_len); + dbus_message_iter_close_container(&iter, &array); __ofono_dbus_pending_reply(&sim->pending, reply); } @@ -944,7 +954,7 @@ static GDBusMethodTable sim_methods[] = { G_DBUS_METHOD_FLAG_ASYNC }, { "UnlockPin", "ss", "", sim_unlock_pin, G_DBUS_METHOD_FLAG_ASYNC }, - { "GetIcon", "y", "s", sim_get_icon, + { "GetIcon", "y", "ay", sim_get_icon, G_DBUS_METHOD_FLAG_ASYNC }, { } }; |