Date: Wed, 26 Sep 2012 09:44:21 +0100 From: Matthew Seaman <matthew@freebsd.org> To: Kevin Lo <kevlo@freebsd.org> Cc: Jerry <jerry@seibercom.net>, FreeBSD <freebsd-questions@freebsd.org> Subject: Re: PR 161548 Message-ID: <5062C065.2040603@freebsd.org> In-Reply-To: <5062A037.7080306@FreeBSD.org> References: <20120924172911.0839be5d@scorpio> <5061494D.1000203@FreeBSD.org> <5062A037.7080306@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 26/09/2012 07:27, Kevin Lo wrote: > On 2012/09/25 14:03, Matthew Seaman wrote: >> On 24/09/2012 22:29, Jerry wrote: >>> Is there any specific reason that this PR: 161548 is still marked as >>> open? >>> >>> o 2011/10/13 bin/161548 [patch] getent(1) inconsistent treatment of >>> IPv6 host data >> It simply hasn't attracted the attention of anyone with a src commit >> bit. Yet. > > There's no need to declare he4 and he6 as struct hostent, > the original declaration of he is fine. So here is patch. > > Index: usr.bin/getent/getent.c > =================================================================== > --- usr.bin/getent/getent.c (revision 240947) > +++ usr.bin/getent/getent.c (working copy) > @@ -285,6 +285,7 @@ hosts(int argc, char *argv[]) > assert(argv != NULL); > > sethostent(1); > + he = NULL; > rv = RV_OK; > if (argc == 2) { > while ((he = gethostent()) != NULL) > @@ -295,8 +296,9 @@ hosts(int argc, char *argv[]) > he = gethostbyaddr(addr, IN6ADDRSZ, > AF_INET6); > else if (inet_pton(AF_INET, argv[i], (void > *)addr) > 0) > he = gethostbyaddr(addr, INADDRSZ, > AF_INET); > - else > - he = gethostbyname(argv[i]); > + else if ((he = gethostbyname2(argv[i], > AF_INET6)) == > + NULL) > + he = gethostbyname2(argv[i], AF_INET); > if (he != NULL) > hostsprint(he); > else { Not so. Hosts frequently have both IPv6 and IPv4 addresses: your patch would print only the IPv6 address in that case. Cheers, Matthew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5062C065.2040603>