summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Neumann <neumann@teufel.de>2015-02-25 10:18:01 +0100
committerDan Winship <danw@gnome.org>2015-02-27 12:01:57 -0500
commit9a037b7cc3311289d8e438429bc6e730b83db6dc (patch)
treefa85d0e3816c0b00d0328de44b947120acc30245
parent83120c35c476118390b75250d0ba7845c396cd6e (diff)
downloadlibsoup-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.c8
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);