diff options
author | Sven Neumann <neumann@teufel.de> | 2015-02-25 10:18:01 +0100 |
---|---|---|
committer | Dan Winship <danw@gnome.org> | 2015-02-27 12:01:57 -0500 |
commit | 9a037b7cc3311289d8e438429bc6e730b83db6dc (patch) | |
tree | fa85d0e3816c0b00d0328de44b947120acc30245 | |
parent | 83120c35c476118390b75250d0ba7845c396cd6e (diff) | |
download | libsoup-9a037b7cc3311289d8e438429bc6e730b83db6dc.tar.gz |
soup-session: fix cancellation of paused messages
If a paused message is cancelled the SoupSessionCallback
would not have always been called. This is fixed by making
sure that the message I/O is unpaused when the message
is cancelled.
https://bugzilla.gnome.org/show_bug.cgi?id=745094
-rw-r--r-- | libsoup/soup-session.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c index f2bd34b9..bec4c924 100644 --- a/libsoup/soup-session.c +++ b/libsoup/soup-session.c @@ -2372,7 +2372,13 @@ soup_session_real_cancel_message (SoupSession *session, SoupMessage *msg, guint item = soup_message_queue_lookup (priv->queue, msg); g_return_if_fail (item != NULL); - item->paused = FALSE; + if (item->paused) { + item->paused = FALSE; + + if (item->state == SOUP_MESSAGE_RUNNING) + soup_message_io_unpause (msg); + } + soup_message_set_status (msg, status_code); g_cancellable_cancel (item->cancellable); |