Only depend on the plen to determine how much data to read from the
socket ignoring the hlen during the reading stage. When determining
how much of the received PDU header to return, attempt to send the
full hlen, but truncate that length to the full PDU length.
In particular, in the case of a busted PDU where the header length
(hlen) exceeds the PDU length (plen), the entire PDU is now returned
(capped to a max of 128 bytes) rather than only the common PDU header.