Non-Blocking Read Fix

md5sum a.out
5add0c5a19f31cde304b34ca29886998  a.out

Having an issue before where the data would be read, but the read would
return -1 with EAGAIN flag even though there was no more data to read.
This has been fixed by checking to see if we've placed information into
the buffer already, because if we have information in the buffer and
nothing more to read from the socket, then we are quite content to move
on with the next step.