summaryrefslogtreecommitdiffstats
path: root/src/sim.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-10-13 04:01:32 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-10-13 05:04:47 -0500
commitccf4b34522c83b6f99455fcf73725e88b23ed0e0 (patch)
tree215eeeb4b2d0d9aaa80177cb82a23447c9a1f786 /src/sim.c
parent48f8bae93097668de193dcb9bfeee26608db59e1 (diff)
downloadofono-ccf4b34522c83b6f99455fcf73725e88b23ed0e0.tar.bz2
sim: Use ay return signature for GetIcon
Diffstat (limited to 'src/sim.c')
-rw-r--r--src/sim.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/sim.c b/src/sim.c
index db427d7c..eb50d8b8 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -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 },
{ }
};