From 94ce1eb94babb4c587b2826452fb053cba745098 Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Tue, 22 Jun 2010 10:41:03 -0400 Subject: libexport.a: Add helpers to manage DNS lookups Introduce DNS query helpers based on getaddrinfo(3) and getnameinfo(3). These will eventually replace the existing hostent-based functions in support/export/hostname.c. Put some of these new helpers to immediate use, where convenient. As they are part of libexport.a, I've added the forward declarations for these new functions in exportfs.h rather than misc.h, where the hostent-based forward declarations are currently. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson --- utils/exportfs/exportfs.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'utils/exportfs/exportfs.c') diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c index 331e57e..83d00a0 100644 --- a/utils/exportfs/exportfs.c +++ b/utils/exportfs/exportfs.c @@ -287,7 +287,7 @@ static void unexportfs(char *arg, int verbose) { nfs_export *exp; - struct hostent *hp = NULL; + struct addrinfo *ai = NULL; char *path; char *hname = arg; int htype; @@ -302,10 +302,9 @@ unexportfs(char *arg, int verbose) } if ((htype = client_gettype(hname)) == MCL_FQDN) { - if ((hp = gethostbyname(hname)) != 0) { - hp = hostent_dup (hp); - hname = (char *) hp->h_name; - } + ai = host_addrinfo(hname); + if (ai) + hname = ai->ai_canonname; } for (exp = exportlist[htype].p_head; exp; exp = exp->m_next) { @@ -341,7 +340,7 @@ unexportfs(char *arg, int verbose) exp->m_mayexport = 0; } - if (hp) free (hp); + freeaddrinfo(ai); } static int can_test(void) -- cgit