When reading from the socket with `sock_tcp_read()` it would only return data from at most one internal connection buffer, even if the buffer passed to `sock_tcp_read()` is larger and there is more data available in the connection. This patch makes `sock_tcp_read` process all the available data so long as there's more data to read available immediately.