From 5e6879dffb4106b7288ee257d9dcd73fce13e6e0 Mon Sep 17 00:00:00 2001 From: Jan Vidar Krey Date: Fri, 12 Feb 2010 20:33:17 +0100 Subject: [PATCH] Fix for partial read operations. --- src/core/netevent.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/netevent.c b/src/core/netevent.c index 0afe7cf..f903edb 100644 --- a/src/core/netevent.c +++ b/src/core/netevent.c @@ -58,7 +58,11 @@ int handle_net_read(struct hub_user* user) static char buf[MAX_RECV_BUF]; struct hub_recvq* q = user->recv_queue; size_t buf_size = hub_recvq_get(q, buf, MAX_RECV_BUF); - ssize_t size = net_con_recv(user->connection, buf, MAX_RECV_BUF); + ssize_t size; + + if (user_flag_get(user, flag_maxbuf)) + buf_size = 0; + size = net_con_recv(user->connection, buf + buf_size, MAX_RECV_BUF - buf_size); if (size > 0) buf_size += size;