NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: misc/39327
On Fri, May 22, 2009 at 05:05:03PM +0000, Jukka Ruohonen wrote:
> The following reply was made to PR misc/39327; it has been noted by GNATS.
>
> From: Jukka Ruohonen <jruohonen%iki.fi@localhost>
> To: gnats-bugs%NetBSD.org@localhost
> Cc:
> Subject: Re: misc/39327
> Date: Fri, 22 May 2009 20:04:48 +0300
>
> 5AOn Fri, May 22, 2009 at 11:09:07AM -0400, Martin S. Weber wrote:
> > Well, it's true that it shouldn't be "the DARPA internet" anylonger, but
> > what about the other part of the fix suggestion, i.e. document in
> > /etc/procotols which domain (by socket(2) parlese) the protocol is for?
>
> I am not sure whether I follow you with the other part.
>
> 1. I think it is not so easy nor reasonable for a single operating system to
> change '/etc/protocols' because it comes from IANA, a.k.a. the Internet
> Assigned Numbers Authority. Functions like getprotobyname(3) also use
> '/etc/protocols' as a lookup; changing it will break a lot of things.
>
I understand that, but on the other hand even the IANA will not block
an improvement in a file they provide, will they?
> 2. Generally the file is not meant as a reference for the domain-parameter
> in socket(2), but rather as a reference for the number in the protocol-field
> of IPv4 header (or next header -field in IPv6), as described also in the
> file itsef. Even if such change would be made, there is no mapping between
> the AF_-constants and the file (surely e.g. TCP can be used both with
> AF_INET and AF_INET6).
>
I think there's some confusion here. I wasn't talking about the domain
parameter of socket(), but about its protocol parameter:
int
socket(int domain, int type, int protocol);
The domain parameter can be PF_INET, PF_INET6 and a lot of others, for
the _protocol_ parameter the manpage says, "The protocol number to use is
particular to the communication domain in which communication is to
take place; see protocols(5).".
That makes me think: There exists a mapping of domain parameters to
a set of usable protocol parameters. Look at protocols(5) (and thus
at /etc/protocols) to find out which. But /etc/protocols only documents
the possible protocols at all. Now if /etc/protocols had also a field
for the "communication domain in which communication is to take place",
there would be no doubt about usable protocols. Take "icmp 1 ICMP" for
instance. If it read "icmp 1 ICMP PF_INET" instead, it would be obvious
that icmp is not for PF_INET6. Actually even expanding the comment instead
of adding a new field to improve documentation on where this procotol
"belongs" would improve the situation in my opinion.
> 3. Moreover, I think the socket(2) manual page does not rightly give any
> impression that one should look to '/etc/protocols' for the AF_-constants.
>
AF_ ? The socket(2) man page only talks about PF_ constants (besides, I
personally never understood THEIR distinction but that is outside the scope
of this PR.)
-Martin
Home |
Main Index |
Thread Index |
Old Index