[Telepathy-commits] [telepathy-gabble/master] Call socks5_handle_received_data() until there is no more data to process
Marco Barisione
marco at barisione.org
Tue Jan 6 08:41:31 PST 2009
---
src/bytestream-socks5.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/bytestream-socks5.c b/src/bytestream-socks5.c
index 28a5838..4cbd053 100644
--- a/src/bytestream-socks5.c
+++ b/src/bytestream-socks5.c
@@ -840,8 +840,15 @@ socks5_channel_readable_cb (GIOChannel *source,
priv->read_buffer->len += bytes_read;
priv->read_buffer->str[priv->read_buffer->len] = '\0';
- used_bytes = socks5_handle_received_data (self, priv->read_buffer);
- g_string_erase (priv->read_buffer, 0, used_bytes);
+ do
+ {
+ /* socks5_handle_received_data() processes the data and returns the
+ * number of bytes that have been used. 0 means that there is not enough
+ * data to do anything, so we just wait for more data from the socket */
+ used_bytes = socks5_handle_received_data (self, priv->read_buffer);
+ g_string_erase (priv->read_buffer, 0, used_bytes);
+ }
+ while (used_bytes > 0 && priv->read_buffer->len > 0);
return TRUE;
}
--
1.5.6.5
More information about the Telepathy-commits
mailing list