svn commit: r198781 - head/lib/libc/sys
cperciva at freebsd.org
Mon Nov 2 18:20:25 UTC 2009
Robert Watson wrote:
> On Mon, 2 Nov 2009, Colin Percival wrote:
>> Attempt to reduce accidental foot-shooting by pointing out that
>> accept(2)ed sockets do not necessarily inherit O_NONBLOCK from
>> listening sockets on non-FreeBSD platforms.
> I wonder how much trouble we should go to to document bugs in other
> systems as non-portabilities for features that work in our system.
I don't think there's any simple rule to apply here except "use common
sense". One can argue that FreeBSD man pages exist for the purpose of
documenting FreeBSD; but I'd also like to think that FreeBSD is a good
development platform for writing portable applications, so alerting our
users to potentially non-portable code certainly has some value. (And
there are many other examples of "portable programs should not..." in
our man pages, not just the one I added.)
The non-portability I just documented was a particularly obnoxious one,
since in event-driven code it can go unnoticed for a long time -- as I
just recently discovered.
> I think a more general caution for accept(2) might instead be:
> The inheritence of socket options from a listen socket to a newly
> accepted socket is inconsistent across protocols, and non-portable.
I was originally going to write it that way, but when I looked at the
existing text I saw that it only mentioned inheriting O_NONBLOCK and said
nothing about other options -- so I figured that it was appropriate to
follow suit and only mention O_NONBLOCK in saying what was non-portable.
Security Officer, FreeBSD | freebsd.org | The power to serve
Founder / author, Tarsnap | tarsnap.com | Online backups for the truly paranoid
More information about the svn-src-head