Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Sep 2012 14:27:03 +0800
From:      Kevin Lo <kevlo@FreeBSD.org>
To:        Matthew Seaman <matthew@FreeBSD.org>
Cc:        Jerry <jerry@seibercom.net>, FreeBSD <freebsd-questions@FreeBSD.org>
Subject:   Re: Re: PR 161548
Message-ID:  <5062A037.7080306@FreeBSD.org>
In-Reply-To: <5061494D.1000203@FreeBSD.org>
References:  <20120924172911.0839be5d@scorpio> <5061494D.1000203@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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 {

>
> 	Cheers,
>
> 	Matthew
>

     Kevin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5062A037.7080306>