> On Thu, Apr 16, 2015 at 09:19:13AM -0400, William Orr wrote: > > This documents the error code when passing multiple cmsg structs. Let me > > know if the wording needs to be improved. > > > > Index: lib/libc/sys/send.2 > > =================================================================== > > RCS file: /cvs/src/lib/libc/sys/send.2,v > > retrieving revision 1.31 > > diff -u -p -r1.31 send.2 > > --- lib/libc/sys/send.2 9 Sep 2014 06:32:37 -0000 1.31 > > +++ lib/libc/sys/send.2 16 Apr 2015 12:48:32 -0000 > > @@ -223,6 +223,17 @@ values in the > > .Fa msg_iov > > array overflowed an > > .Em ssize_t . > > +.It Bq Er EINVAL > > +The socket > > +.Fa s > > +is a > > +.Xr unix 4 > > +socket, and > > +.Em controlmsg > > +is an invalid size or multiple > > +.Em controlmsg > > +structures were passed as part of > > +.Fa msg . > > .It Bq Er EMSGSIZE > > The > > .Fa msg_iovlen > > > > anyone want to take this? it's fine by me, if someone can verify its > accuracy.
It seems we cannot exhaustively document the scenarios that lead to certain errnos being returned (in particular, EAGAIN and EINVAL). Overdocumentation leads to reader fatigue; reader fatigue leads to the documentation being ignored. I think it is clearly understood that controlmsg layout is complex, and there are many illegal layouts, even non-portable ones at that. This is a complex space, under-documented perhaps? In any case all those details are missing from this manual page. So it seems completely wrong to document just this one narrow detail. So I don't think the proposed diff improves the manual page.
