Subject: Re: NetBSD-3 NIS-compat getpwnam()/getpwuid iterate entire map [was Re: 3.0 YP lookup latency]
To: Charles M. Hannum <mycroft@MIT.EDU>
From: Christos Zoulas <christos@zoulas.com>
List: tech-net
Date: 06/21/2006 22:05:31
On Jun 21, 6:11pm, mycroft@MIT.EDU ("Charles M. Hannum") wrote:
-- Subject: Re: NetBSD-3 NIS-compat getpwnam()/getpwuid iterate entire map [
| On Wed, Jun 21, 2006 at 04:19:34PM -0400, Christos Zoulas wrote:
| > | Oh... and I noticed a bug in clnt_generic(): for RPC-over-TCP, we
| > | disable RFC-896 (Nagle) processing for TCP over IPv4, but not for TCP
| > | over IPv6[1]. Makes a grown man cry.
| >
| > And something like this?
| >
| > Index: clnt_generic.c
| > ===================================================================
| > RCS file: /cvsroot/src/lib/libc/rpc/clnt_generic.c,v
| > retrieving revision 1.25
| > diff -u -u -r1.25 clnt_generic.c
| > --- clnt_generic.c 2 Dec 2005 12:19:16 -0000 1.25
| > +++ clnt_generic.c 21 Jun 2006 20:19:15 -0000
| > @@ -333,10 +333,8 @@
| > cl = clnt_vc_create(fd, svcaddr, prog, vers, sendsz, recvsz);
| > if (!nconf || !cl)
| > break;
| > - /* XXX fvdl - is this useful? */
| > - if (strncmp(nconf->nc_protofmly, "inet", (size_t)4) == 0)
| > - setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &one,
| > - (socklen_t)sizeof (one));
| > + setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &one,
| > + (socklen_t)sizeof (one));
| > break;
| > case NC_TPI_CLTS:
| > cl = clnt_dg_create(fd, svcaddr, prog, vers, sendsz, recvsz);
|
| This is a fine example of why you should not be so hasty to "fix"
| things. If you type "man strncmp" and read a bit, you'll understand
| that the original code matches both "inet" and "inet6" -- and the bug
| that Jonathan claimed above *does not exist*.
|
| Furthermore, since protocol numbers are unique within a protocol
| family (at least in BSD), the code as written will not have any
| adverse effect on non-TCP stream sockets, even if such should exist
| some day in the AF_INET or AF_INET6 protocol families.
|
| Please to be working on real bugs, not fictional ones.
Thanks for the feedback charles. We will leave the code as it it.
christos