schwarze neutered the *netent(3) family as well as networks(5) in 2018, mountd(8) remains the only user of these functions in base.
setnetent() and endnetent() are empty functions now, getnetent() always returns NULL unconditionally so the while loop is never entered, the entire if block is code that does nothing and inetaddr2 eventually becomes unused alltogether. See lib/libc/net/getnetent.c or getnetent(3). get_net()'s maskflg parameter is still used, so nothing to be removed there. Feedback? OK? Index: mountd.c =================================================================== RCS file: /cvs/src/sbin/mountd/mountd.c,v retrieving revision 1.88 diff -u -p -r1.88 mountd.c --- mountd.c 24 Jan 2020 18:51:45 -0000 1.88 +++ mountd.c 24 May 2020 13:11:04 -0000 @@ -2052,29 +2052,13 @@ do_mount(struct exportlist *ep, struct g int get_net(char *cp, struct netmsk *net, int maskflg) { - struct in_addr inetaddr, inetaddr2; + struct in_addr inetaddr; in_addr_t netaddr; struct netent *np; char *name; if ((netaddr = inet_network(cp)) != INADDR_NONE) { inetaddr = inet_makeaddr(netaddr, 0); - /* - * Due to arbitrary subnet masks, you don't know how many - * bits to shift the address to make it into a network, - * however you do know how to make a network address into - * a host with host == 0 and then compare them. - * (What a pest) - */ - if (!maskflg) { - setnetent(0); - while ((np = getnetent())) { - inetaddr2 = inet_makeaddr(np->n_net, 0); - if (inetaddr2.s_addr == inetaddr.s_addr) - break; - } - endnetent(); - } } else { if ((np = getnetbyname(cp))) inetaddr = inet_makeaddr(np->n_net, 0);