From: Florian Obser Subject: mount_nfs(8): get rid of inet_aton. To: tech Date: Sun, 18 Aug 2024 15:10:32 +0200 I doubt anyone needs inet_aton's flexibility^W impreciseness. OK? diff --git mount_nfs.c mount_nfs.c index 1c2ecf8fbaa..0724936f0b3 100644 --- mount_nfs.c +++ mount_nfs.c @@ -383,7 +383,7 @@ int getnfsargs(char *spec, struct nfs_args *nfsargsp) { CLIENT *clp; - struct hostent *hp; + struct addrinfo hints, *res; static struct sockaddr_in saddr; struct timeval pertry, try; enum clnt_stat clnt_stat; @@ -411,14 +411,15 @@ getnfsargs(char *spec, struct nfs_args *nfsargsp) /* * Handle an internet host address */ - if (inet_aton(hostp, &saddr.sin_addr) == 0) { - hp = gethostbyname(hostp); - if (hp == NULL) { - warnx("can't resolve address for host %s", hostp); - return (0); - } - memcpy(&saddr.sin_addr, hp->h_addr, hp->h_length); + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; + + if (getaddrinfo(hostp, NULL, &hints, &res) != 0) { + warnx("can't resolve address for host %s", hostp); + return (0); } + saddr.sin_addr = ((struct sockaddr_in *)res->ai_addr)->sin_addr; + freeaddrinfo(res); if (force2) { nfsvers = NFS_VER2; -- In my defence, I have been left unsupervised.