Subject: Re: CVS commit: src
To: Matt Thomas <matt@3am-software.com>
From: Brian Ginsbach <ginsbach@NetBSD.org>
List: tech-kern
Date: 06/15/2006 15:36:56
On Wed, Jun 14, 2006 at 08:03:22PM -0700, Matt Thomas wrote:
> Brian Ginsbach wrote:
> > On Wed, Jun 14, 2006 at 01:48:02PM -0700, Bill Studenmund wrote:
> >> While I don't think EAFNOTSUPPORT is the right error (we have EPFNOSUPPORT 
> >> which man errno seems to say is right), it's much better than 
> >> ENOPROTOSUPPORT.
> >>
> > 
> > I agree but then we need convince IEEE and X/Open.  The current
> > standards have no concept of EPFNOSUPPORT.  Maybe if this would
> > have been fixed long ago by the CSRG, IEEE and X/Open would have
> > had the right errno to begin with.  As it stands now I think we
> > need to live with the admittedly poorer EAFNOSUPPORT.
> 
> #define EAFNOSUPPORT EPFNOSUPPORT
> 

What?  Where are you proposing doing this?  You certainly can't do
it in errno.h as EAFNOSUPPORT currently means something very
different from EPFNOSUPPORT (internally anyway).  I think doing
this would just create all sorts of other problems.  Several
SUS systems still have separate values for EPFNOSUPPORT and
EAFNOSUPPORT.

Quoting from the original thread on tech-net:

On Fri, Jun 09, 2006 at 06:09:46PM +0400, Valeriy E. Ushakov wrote:
> On Fri, Jun 09, 2006 at 09:34:59 -0400, Sean Boudreau wrote:
> > POSIX says EAFNOSUPPORT and has no concept of EPFNOSUPPORT.
>
> Well, POSIX doesn't have PF_ constants either.  We nominally
> distinguish PF_ and AF_ though they have identical numeric values, but
> EPFNOSUPPORT and EAFNOSUPPORT have different numeric values, thus we
> have an interesting problem here (posixly correct vs internally
> consistent).
>
> Anyway, my reading of the
> http://www.opengroup.org/onlinepubs/007908799/xns/socket.html is that
> unsupported arguments should be reported as:
>
> domain   - EAFNOSUPPORT
> type     - EPROTOTYPE
> protocol - EPROTONOSUPPORT

I think this summarizes the situation nicely.

Brian