PR 161548
Matthew Seaman
matthew at freebsd.org
Wed Sep 26 08:44:26 UTC 2012
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
More information about the freebsd-questions
mailing list