Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Nov 2009 10:20:19 -0800
From:      Colin Percival <cperciva@freebsd.org>
To:        Robert Watson <rwatson@FreeBSD.org>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r198781 - head/lib/libc/sys
Message-ID:  <4AEF22E3.5070701@freebsd.org>
In-Reply-To: <alpine.BSF.2.00.0911021455080.37561@fledge.watson.org>
References:  <200911020721.nA27LDq1048764@svn.freebsd.org> <alpine.BSF.2.00.0911021455080.37561@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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:
> 
> BUGS
>     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.

-- 
Colin Percival
Security Officer, FreeBSD | freebsd.org | The power to serve
Founder / author, Tarsnap | tarsnap.com | Online backups for the truly paranoid



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4AEF22E3.5070701>