OK, sounds good. How about I also add a field to indicate the
application buffer size?
How can this help, we already have it. It's the length field to
the recvmsg() call.
Also, either the user provided a large enough buffer or he didn't. If
he didn't we return an error to the recvmsg() call, and the user can
increase the buffer size and try again.