diff options
Diffstat (limited to 'libsoup/soup-body-output-stream.c')
| -rw-r--r-- | libsoup/soup-body-output-stream.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/libsoup/soup-body-output-stream.c b/libsoup/soup-body-output-stream.c index 499e8e6f..c0aeb458 100644 --- a/libsoup/soup-body-output-stream.c +++ b/libsoup/soup-body-output-stream.c @@ -118,7 +118,15 @@ soup_body_output_stream_wrote_data (SoupBodyOutputStream *bostream, const void *buffer, gsize count) { - g_signal_emit (bostream, signals[WROTE_DATA], 0, buffer, count); + g_signal_emit (bostream, signals[WROTE_DATA], 0, buffer, count, FALSE); +} + +static void +soup_body_output_stream_wrote_metadata (SoupBodyOutputStream *bostream, + const void *buffer, + gsize count) +{ + g_signal_emit (bostream, signals[WROTE_DATA], 0, buffer, count, TRUE); } static gssize @@ -178,6 +186,9 @@ again: nwrote = g_pollable_stream_write (priv->base_stream, buf, len, blocking, cancellable, error); + if (nwrote > 0) + soup_body_output_stream_wrote_metadata (bostream, buf, nwrote); + if (nwrote < 0) return nwrote; memmove (buf, buf + nwrote, len + 1 - nwrote); @@ -341,9 +352,10 @@ soup_body_output_stream_class_init (SoupBodyOutputStreamClass *stream_class) 0, NULL, NULL, NULL, - G_TYPE_NONE, 2, + G_TYPE_NONE, 3, G_TYPE_POINTER, - G_TYPE_UINT); + G_TYPE_UINT, + G_TYPE_BOOLEAN); g_object_class_install_property ( object_class, PROP_ENCODING, |
