summaryrefslogtreecommitdiff
path: root/libsoup/soup-session-async.c
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2012-05-03 20:20:29 -0400
committerDan Winship <danw@gnome.org>2012-05-03 20:25:28 -0400
commit62b501232e0657d55d8dc3a1570e817b29e8d4c7 (patch)
tree874f5ccfd83c8303a3a9c7f575534890ede4b8bd /libsoup/soup-session-async.c
parent9fe4980d826c451e2cf5ea4fe7cfde6c7e408edb (diff)
downloadlibsoup-62b501232e0657d55d8dc3a1570e817b29e8d4c7.tar.gz
Fix a few recent request API bugs, add some more tests
Diffstat (limited to 'libsoup/soup-session-async.c')
-rw-r--r--libsoup/soup-session-async.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libsoup/soup-session-async.c b/libsoup/soup-session-async.c
index 0f3aefff..4f882069 100644
--- a/libsoup/soup-session-async.c
+++ b/libsoup/soup-session-async.c
@@ -562,6 +562,7 @@ send_request_restarted (SoupSession *session, SoupMessageQueueItem *item)
{
/* We won't be needing this, then. */
g_object_set_data (G_OBJECT (item->msg), "SoupSessionAsync:ostream", NULL);
+ item->io_started = FALSE;
}
static void
@@ -587,7 +588,7 @@ send_request_finished (SoupSession *session, SoupMessageQueueItem *item)
size = g_memory_output_stream_get_data_size (mostream);
data = size ? g_memory_output_stream_steal_data (mostream) : g_strdup ("");
istream = g_memory_input_stream_new_from_data (data, size, g_free);
- } else {
+ } else if (item->io_started) {
/* The message finished before becoming readable. This
* will happen, eg, if it's cancelled from got-headers.
* Do nothing; the op will complete via read_ready_cb()
@@ -702,6 +703,7 @@ try_run_until_read (SoupMessageQueueItem *item)
static void
send_request_running (SoupSession *session, SoupMessageQueueItem *item)
{
+ item->io_started = TRUE;
try_run_until_read (item);
}