diff options
author | Xavier Claessens <xavier.claessens@collabora.co.uk> | 2013-12-04 14:09:18 -0500 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.co.uk> | 2014-01-03 10:37:58 -0500 |
commit | 4480d2b9f5bb72c8acf0e9f712c6f8346a174f91 (patch) | |
tree | 7b6adcbb0800a18f6e29c5bffa5b4604fef377ef /examples/client/list-connections.c | |
parent | 441fed1e0828b8fc6b94bd5f66c7cb222d09ef20 (diff) | |
download | telepathy-glib-4480d2b9f5bb72c8acf0e9f712c6f8346a174f91.tar.gz |
TpFileTransferChannel: Fix possible crashes.
tp_file_transfer_channel_accept_file_async() and
tp_file_transfer_channel_provide_file_async() operations are supposed
to complete as soon as the CM returns from AcceptFile or ProvideFile.
That means that we cannot call operation_failed() for streaming errors.
We also have to keep a ref on self while streaming the file to
avoid a crash in the callback when we dereference self.
This means that the client app cannot cancel the ongoing streaming
by unreffing the channel, replying on dispose calling g_cancellable_cancel().
It can still be doing using g_object_run_dispose() though. To make it cleaner
we should probably add tp_file_transfer_channel_cancel().
The spec does not provide any way for the streaming client to inform
the CM and other clients about the error occured while streaming.
TpFileTransferChannel API does not even have a way to propagate that
error to the user.
Diffstat (limited to 'examples/client/list-connections.c')
0 files changed, 0 insertions, 0 deletions