PR 161548
Kevin Lo
kevlo at FreeBSD.org
Wed Sep 26 09:32:14 UTC 2012
On 2012/09/26 16:44, Matthew Seaman wrote:
> 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.
Err, right. I committed your patch, thanks.
>
> Cheers,
>
> Matthew
>
>
>
Kevin
More information about the freebsd-questions
mailing list