[libsoup] soup-http-input-stream: read data from leftover buffers in finished messages
- From: Sergio Villar Senin <svillar src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup] soup-http-input-stream: read data from leftover buffers in finished messages
- Date: Fri, 16 Sep 2011 17:02:34 +0000 (UTC)
commit 83aa1f285afa7232aaf3d2978d6b5eee23410781
Author: Sergio Villar Senin <svillar igalia com>
Date: Fri Sep 16 17:08:08 2011 +0200
soup-http-input-stream: read data from leftover buffers in finished messages
soup_http_input_stream_read(_async) allow clients to read pending data in
leftover buffers even if the SoupMessage used by the stream is finished.
https://bugzilla.gnome.org/show_bug.cgi?id=659256
libsoup/soup-http-input-stream.c | 16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)
---
diff --git a/libsoup/soup-http-input-stream.c b/libsoup/soup-http-input-stream.c
index 82e7d46..6aa153d 100644
--- a/libsoup/soup-http-input-stream.c
+++ b/libsoup/soup-http-input-stream.c
@@ -489,13 +489,13 @@ soup_http_input_stream_read (GInputStream *stream,
{
SoupHTTPInputStreamPrivate *priv = SOUP_HTTP_INPUT_STREAM_GET_PRIVATE (stream);
- if (priv->finished)
- return 0;
-
/* If there is data leftover from a previous read, return it. */
if (priv->leftover_bufsize)
return read_from_leftover (priv, buffer, count);
+ if (priv->finished)
+ return 0;
+
/* No leftover data, accept one chunk from the network */
soup_http_input_stream_prepare_for_io (stream, cancellable, buffer, count);
while (!priv->finished && priv->caller_nread == 0 &&
@@ -701,16 +701,16 @@ soup_http_input_stream_read_async (GInputStream *stream,
callback, user_data,
soup_http_input_stream_read_async);
- if (priv->finished) {
- g_simple_async_result_set_op_res_gssize (result, 0);
+ if (priv->leftover_bufsize) {
+ gsize nread = read_from_leftover (priv, buffer, count);
+ g_simple_async_result_set_op_res_gssize (result, nread);
g_simple_async_result_complete_in_idle (result);
g_object_unref (result);
return;
}
- if (priv->leftover_bufsize) {
- gsize nread = read_from_leftover (priv, buffer, count);
- g_simple_async_result_set_op_res_gssize (result, nread);
+ if (priv->finished) {
+ g_simple_async_result_set_op_res_gssize (result, 0);
g_simple_async_result_complete_in_idle (result);
g_object_unref (result);
return;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]