Problem: Outbound transports encode message types in a fixed 12-byte field, but CConnman did not ensure internal callers respected this limit before queuing messages.
An oversized type aborts V1 encoding. V2 sends it under a truncated type with its payload intact, or writes past its encoding buffer when the payload is shorter than the excess type bytes.
The send path also did not enforce the 4 MB payload limit.
Fix: Treat oversized types and payloads as failed assumptions in CConnman::PushMessage() before they enter the send queue.