diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2009-04-28 16:59:07 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2009-04-28 16:59:07 +0800 |
commit | 0ced9a43b562b567d97a98d18da2bceaff3e68e3 (patch) | |
tree | 31b1f74ef4d67cd642b53495bcf5c3cc3498d3e6 /libempathy/empathy-tube-handler.c | |
parent | 5d3fb4fdc5bfe04e639b44650d79efc7ff24e139 (diff) | |
download | gsoc2013-empathy-0ced9a43b562b567d97a98d18da2bceaff3e68e3.tar gsoc2013-empathy-0ced9a43b562b567d97a98d18da2bceaff3e68e3.tar.gz gsoc2013-empathy-0ced9a43b562b567d97a98d18da2bceaff3e68e3.tar.bz2 gsoc2013-empathy-0ced9a43b562b567d97a98d18da2bceaff3e68e3.tar.lz gsoc2013-empathy-0ced9a43b562b567d97a98d18da2bceaff3e68e3.tar.xz gsoc2013-empathy-0ced9a43b562b567d97a98d18da2bceaff3e68e3.tar.zst gsoc2013-empathy-0ced9a43b562b567d97a98d18da2bceaff3e68e3.zip |
tube-handler: use tp_channel_call_when_ready instead of tp_channel_run_until_ready
Diffstat (limited to 'libempathy/empathy-tube-handler.c')
-rw-r--r-- | libempathy/empathy-tube-handler.c | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/libempathy/empathy-tube-handler.c b/libempathy/empathy-tube-handler.c index cbd004d14..d4c4d63be 100644 --- a/libempathy/empathy-tube-handler.c +++ b/libempathy/empathy-tube-handler.c @@ -86,6 +86,28 @@ tube_ready_destroy_notify (gpointer data) } static void +channel_ready_cb (TpChannel *channel, + const GError *error, + gpointer data) +{ + IdleData *idle_data = data; + + if (error != NULL) + { + DEBUG ("channel has been invalidated: %s", error->message); + tube_ready_destroy_notify (data); + g_object_unref (channel); + return; + } + + idle_data->tube = empathy_tp_tube_new (channel); + empathy_tp_tube_call_when_ready (idle_data->tube, tube_ready_cb, idle_data, + tube_ready_destroy_notify, NULL); + + g_object_unref (channel); +} + +static void connection_ready_cb (TpConnection *connection, const GError *error, gpointer data) @@ -104,13 +126,8 @@ connection_ready_cb (TpConnection *connection, channel = tp_channel_new (connection, idle_data->channel, TP_IFACE_CHANNEL_TYPE_TUBES, idle_data->handle_type, idle_data->handle, NULL); - tp_channel_run_until_ready (channel, NULL, NULL); + tp_channel_call_when_ready (channel, channel_ready_cb, idle_data); - idle_data->tube = empathy_tp_tube_new (channel); - empathy_tp_tube_call_when_ready (idle_data->tube, tube_ready_cb, idle_data, - tube_ready_destroy_notify, NULL); - - g_object_unref (channel); g_object_unref (connection); } |