summaryrefslogtreecommitdiff
path: root/gst/librfb
diff options
context:
space:
mode:
Diffstat (limited to 'gst/librfb')
-rw-r--r--gst/librfb/rfbdecoder.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gst/librfb/rfbdecoder.c b/gst/librfb/rfbdecoder.c
index 9142f1dcb..e6eb70135 100644
--- a/gst/librfb/rfbdecoder.c
+++ b/gst/librfb/rfbdecoder.c
@@ -188,6 +188,7 @@ rfb_decoder_read (RfbDecoder * decoder, guint32 len)
{
GInputStream *in;
GError *err = NULL;
+ gsize count = 0;
if (!decoder->connection)
return FALSE;
@@ -204,10 +205,16 @@ rfb_decoder_read (RfbDecoder * decoder, guint32 len)
decoder->data_len = len;
}
- if (!g_input_stream_read_all (in, decoder->data, len, NULL,
+ if (!g_input_stream_read_all (in, decoder->data, len, &count,
decoder->cancellable, &err))
goto recv_error;
+ if (count == 0) {
+ g_set_error_literal (&err, G_IO_ERROR, G_IO_ERROR_BROKEN_PIPE,
+ "Connection was closed.");
+ goto recv_error;
+ }
+
return decoder->data;
recv_error: