diff options
author | Dan Winship <danw@gnome.org> | 2012-05-03 20:20:29 -0400 |
---|---|---|
committer | Dan Winship <danw@gnome.org> | 2012-05-03 20:25:28 -0400 |
commit | 62b501232e0657d55d8dc3a1570e817b29e8d4c7 (patch) | |
tree | 874f5ccfd83c8303a3a9c7f575534890ede4b8bd /libsoup/soup-session-async.c | |
parent | 9fe4980d826c451e2cf5ea4fe7cfde6c7e408edb (diff) | |
download | libsoup-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.c | 4 |
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); } |