dispatch_connection: do NOT decrease buflen if reading failed

Stupid bug which causes a lot of mutilated metrics.  read(2) will return
less than 0 in many cases, because it will be EWOULDBLOCK/EAGAIN.  We
use non-blocking sockets for a reason.  Therefore, len will be less than
0, and we should not reduce buflen in that case.  Because if you do so,
you end up writing next time at some skewed position.