+ #ifdef HAVE_THREADS
+ char linesbuf[BUF_SIZ*2];
+ strcpy(linesbuf, sock->buffer);
+ int used = 0;
+ for(i = 0; i < sock->bufferpos; i++) {
+ if(sock->buffer[i] == '\n') {
+ used = i+1;
+ }
+ }
+ if(used == sock->bufferpos + 1) {
+ //used all bytes so just reset the bufferpos
+ sock->bufferpos = 0;
+ } else {
+ for(i = 0; i < sock->bufferpos - used; i++) {
+ sock->buffer[i] = sock->buffer[i+used];
+ }
+ sock->bufferpos -= used;
+ }