Use IN_foo() macros from sys/netinet/in.h inplace of handcrafted code
There are a few places that use hand crafted versions of the macros from sys/netinet/in.h making it difficult to actually alter the values in use by these macros. Correct that by replacing handcrafted code with proper macro usage. Reviewed by: karels, kristof Approved by: bde (mentor) MFC after: 3 weeks Sponsored by: John Gilmore Differential Revision: https://reviews.freebsd.org/D19317
This commit is contained in:
parent
93f6aa9203
commit
cda8035706
@ -224,10 +224,8 @@ getnameinfo_inet(const struct afd *afd,
|
||||
case AF_INET:
|
||||
v4a = (u_int32_t)
|
||||
ntohl(((const struct sockaddr_in *)sa)->sin_addr.s_addr);
|
||||
if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a))
|
||||
flags |= NI_NUMERICHOST;
|
||||
v4a >>= IN_CLASSA_NSHIFT;
|
||||
if (v4a == 0)
|
||||
if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a) ||
|
||||
IN_ZERONET(v4a))
|
||||
flags |= NI_NUMERICHOST;
|
||||
break;
|
||||
#ifdef INET6
|
||||
|
@ -957,8 +957,7 @@ nfscl_getmyip(struct nfsmount *nmp, struct in6_addr *paddr, int *isinet6p)
|
||||
if (error != 0)
|
||||
return (NULL);
|
||||
|
||||
if ((ntohl(nh_ext.nh_src.s_addr) >> IN_CLASSA_NSHIFT) ==
|
||||
IN_LOOPBACKNET) {
|
||||
if (IN_LOOPBACK(ntohl(nh_ext.nh_src.s_addr))) {
|
||||
/* Ignore loopback addresses */
|
||||
return (NULL);
|
||||
}
|
||||
|
@ -191,15 +191,10 @@ int
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -499,10 +499,10 @@ ip_input(struct mbuf *m)
|
||||
|
||||
IP_PROBE(receive, NULL, NULL, ip, m->m_pkthdr.rcvif, ip, NULL);
|
||||
|
||||
/* 127/8 must not appear on wire - RFC1122 */
|
||||
/* IN_LOOPBACK must not appear on the wire - RFC1122 */
|
||||
ifp = m->m_pkthdr.rcvif;
|
||||
if ((ntohl(ip->ip_dst.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET ||
|
||||
(ntohl(ip->ip_src.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET) {
|
||||
if (IN_LOOPBACK(ntohl(ip->ip_dst.s_addr)) ||
|
||||
IN_LOOPBACK(ntohl(ip->ip_src.s_addr))) {
|
||||
if ((ifp->if_flags & IFF_LOOPBACK) == 0) {
|
||||
IPSTAT_INC(ips_badaddr);
|
||||
goto bad;
|
||||
|
@ -594,9 +594,9 @@ sendit:
|
||||
}
|
||||
}
|
||||
|
||||
/* 127/8 must not appear on wire - RFC1122. */
|
||||
if ((ntohl(ip->ip_dst.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET ||
|
||||
(ntohl(ip->ip_src.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET) {
|
||||
/* IN_LOOPBACK must not appear on the wire - RFC1122. */
|
||||
if (IN_LOOPBACK(ntohl(ip->ip_dst.s_addr)) ||
|
||||
IN_LOOPBACK(ntohl(ip->ip_src.s_addr))) {
|
||||
if ((ifp->if_flags & IFF_LOOPBACK) == 0) {
|
||||
IPSTAT_INC(ips_badaddr);
|
||||
error = EADDRNOTAVAIL;
|
||||
|
@ -557,8 +557,8 @@ netdump_handle_ip(struct mbuf **mb)
|
||||
}
|
||||
|
||||
#ifdef INVARIANTS
|
||||
if (((ntohl(ip->ip_dst.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET ||
|
||||
(ntohl(ip->ip_src.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET) &&
|
||||
if ((IN_LOOPBACK(ntohl(ip->ip_dst.s_addr)) ||
|
||||
IN_LOOPBACK(ntohl(ip->ip_src.s_addr))) &&
|
||||
(m->m_pkthdr.rcvif->if_flags & IFF_LOOPBACK) == 0) {
|
||||
NETDDEBUG("Bad IP header (RFC1122)\n");
|
||||
return;
|
||||
|
@ -123,14 +123,9 @@ static inline int
|
||||
nat64_check_ip4(in_addr_t ia)
|
||||
{
|
||||
|
||||
/* IN_LOOPBACK */
|
||||
if ((ia & htonl(0xff000000)) == htonl(0x7f000000))
|
||||
return (1);
|
||||
/* IN_LINKLOCAL */
|
||||
if ((ia & htonl(0xffff0000)) == htonl(0xa9fe0000))
|
||||
return (1);
|
||||
/* IN_MULTICAST & IN_EXPERIMENTAL */
|
||||
if ((ia & htonl(0xe0000000)) == htonl(0xe0000000))
|
||||
/* These checks are ordered from most likely to least */
|
||||
if (IN_MULTICAST(ntohl(ia)) || IN_LOOPBACK(ntohl(ia)) ||
|
||||
IN_LINKLOCAL(ntohl(ia)) || IN_EXPERIMENTAL(ntohl(ia)))
|
||||
return (1);
|
||||
return (0);
|
||||
}
|
||||
|
@ -6170,7 +6170,7 @@ done:
|
||||
pd.proto == IPPROTO_UDP) && s != NULL && s->nat_rule.ptr != NULL &&
|
||||
(s->nat_rule.ptr->action == PF_RDR ||
|
||||
s->nat_rule.ptr->action == PF_BINAT) &&
|
||||
(ntohl(pd.dst->v4.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET)
|
||||
IN_LOOPBACK(ntohl(pd.dst->v4.s_addr)))
|
||||
m->m_flags |= M_SKIP_FIREWALL;
|
||||
|
||||
if (action == PF_PASS && r->divert.port && ip_divert_ptr != NULL &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user