Index: lib/libc/net/getnameinfo.c =================================================================== --- lib/libc/net/getnameinfo.c +++ lib/libc/net/getnameinfo.c @@ -224,11 +224,9 @@ case AF_INET: v4a = (u_int32_t) ntohl(((const struct sockaddr_in *)sa)->sin_addr.s_addr); - if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a)) + if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a) || + IN_ZERONET(v4a)) flags |= NI_NUMERICHOST; - v4a >>= IN_CLASSA_NSHIFT; - if (v4a == 0) - flags |= NI_NUMERICHOST; break; #ifdef INET6 case AF_INET6: Index: sys/netinet/in.c =================================================================== --- sys/netinet/in.c +++ sys/netinet/in.c @@ -191,15 +191,10 @@ in_canforward(struct in_addr in) { u_long i = ntohl(in.s_addr); - u_long net; - if (IN_EXPERIMENTAL(i) || IN_MULTICAST(i) || IN_LINKLOCAL(i)) + if (IN_EXPERIMENTAL(i) || IN_MULTICAST(i) || IN_LINKLOCAL(i) || + IN_ZERONET(i) || IN_LOOPBACK(i)) return (0); - if (IN_CLASSA(i)) { - net = i & IN_CLASSA_NET; - if (net == 0 || net == (IN_LOOPBACKNET << IN_CLASSA_NSHIFT)) - return (0); - } return (1); } Index: sys/netpfil/ipfw/nat64/nat64_translate.h =================================================================== --- sys/netpfil/ipfw/nat64/nat64_translate.h +++ sys/netpfil/ipfw/nat64/nat64_translate.h @@ -109,6 +109,12 @@ nat64_check_ip4(in_addr_t ia) { + /* + * XXX This code needs to be rewritten to use + * the IN_foo macros. Need to determine if ia + * is in network or host order first - rwgrimes + * ia appears to be in network byteorder + */ /* IN_LOOPBACK */ if ((ia & htonl(0xff000000)) == htonl(0x7f000000)) return (1);