Continue reading incoming data until enough rcvd

This fixes the case of a large packet being received, the current code stops processing as soon as >12 bytes are received,
keep already received data if not enough to decode
log packet length instead of content
merge