/* read at a maximum sock->chunk_size */
nr_bytes = recv(sock->socket, buf, sock->chunk_size, 0);
if(nr_bytes > 0) {
+
+ /* try to avoid ever expanding buffer */
+ if (sock->readpos > 0) {
+ memmove(sock->readbuf, READPTR(sock), sock->readbuflen - sock->readpos);
+ sock->writepos -= sock->readpos;
+ sock->readpos = 0;
+ }
+
if(sock->writepos + nr_bytes > sock->readbuflen) {
sock->readbuflen += sock->chunk_size;
sock->readbuf = perealloc(sock->readbuf, sock->readbuflen,