Date: Sat, 22 Feb 2025 02:12:46 GMT From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 532106f7aa29 - main - netinet: use in_broadcast() inline Message-ID: <202502220212.51M2CktR099284@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=532106f7aa29a5879a168030ec43119d47ee2bd5 commit 532106f7aa29a5879a168030ec43119d47ee2bd5 Author: Gleb Smirnoff <glebius@FreeBSD.org> AuthorDate: 2025-02-22 02:11:06 +0000 Commit: Gleb Smirnoff <glebius@FreeBSD.org> CommitDate: 2025-02-22 02:11:06 +0000 netinet: use in_broadcast() inline There should be no functional change. Reviewed by: rrs, markj Differential Revision: https://reviews.freebsd.org/D49088 --- sys/netinet/in.c | 2 +- sys/netinet/in_jail.c | 8 +------- sys/netinet/ip_fastfwd.c | 8 +++----- sys/netinet/ip_icmp.c | 9 ++------- sys/netinet/ip_input.c | 4 +--- sys/netinet/sctp_output.c | 6 ++---- sys/netinet/sctp_pcb.c | 6 ++---- sys/netinet/sctputil.c | 3 +-- 8 files changed, 13 insertions(+), 33 deletions(-) diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 7d8cbc6725ad..7196eabc123e 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -1299,7 +1299,7 @@ in_ifnet_broadcast(struct in_addr in, struct ifnet *ifp) NET_EPOCH_ASSERT(); - if (in.s_addr == INADDR_BROADCAST || in.s_addr == INADDR_ANY) + if (in_broadcast(in)) return (true); if ((ifp->if_flags & IFF_BROADCAST) == 0) return (false); diff --git a/sys/netinet/in_jail.c b/sys/netinet/in_jail.c index 9b6b8f670df1..7b2120f575ca 100644 --- a/sys/netinet/in_jail.c +++ b/sys/netinet/in_jail.c @@ -97,13 +97,7 @@ prison_qcmp_v4(const void *ip1, const void *ip2) bool prison_valid_v4(const void *ip) { - in_addr_t ia = ((const struct in_addr *)ip)->s_addr; - - /* - * We do not have to care about byte order for these - * checks so we will do them in NBO. - */ - return (ia != INADDR_ANY && ia != INADDR_BROADCAST); + return (!in_broadcast(*(const struct in_addr *)ip)); } /* diff --git a/sys/netinet/ip_fastfwd.c b/sys/netinet/ip_fastfwd.c index 7a80cce908c1..9b81760e58f3 100644 --- a/sys/netinet/ip_fastfwd.c +++ b/sys/netinet/ip_fastfwd.c @@ -278,14 +278,12 @@ ip_tryforward(struct mbuf *m) */ if ((m->m_flags & (M_BCAST|M_MCAST)) || (m->m_pkthdr.rcvif->if_flags & IFF_LOOPBACK) || - ntohl(ip->ip_src.s_addr) == (u_long)INADDR_BROADCAST || - ntohl(ip->ip_dst.s_addr) == (u_long)INADDR_BROADCAST || + in_broadcast(ip->ip_src) || + in_broadcast(ip->ip_dst) || IN_MULTICAST(ntohl(ip->ip_src.s_addr)) || IN_MULTICAST(ntohl(ip->ip_dst.s_addr)) || IN_LINKLOCAL(ntohl(ip->ip_src.s_addr)) || - IN_LINKLOCAL(ntohl(ip->ip_dst.s_addr)) || - ip->ip_src.s_addr == INADDR_ANY || - ip->ip_dst.s_addr == INADDR_ANY ) + IN_LINKLOCAL(ntohl(ip->ip_dst.s_addr)) ) return m; /* diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c index 2b61820cdaa8..936f76e7fbe3 100644 --- a/sys/netinet/ip_icmp.c +++ b/sys/netinet/ip_icmp.c @@ -635,15 +635,10 @@ icmp_input(struct mbuf **mp, int *offp, int proto) */ if (icmplen < ICMP_MASKLEN) break; - switch (ip->ip_dst.s_addr) { - case INADDR_BROADCAST: - case INADDR_ANY: + if (in_broadcast(ip->ip_dst)) icmpdst.sin_addr = ip->ip_src; - break; - - default: + else icmpdst.sin_addr = ip->ip_dst; - } ia = (struct in_ifaddr *)ifaof_ifpforaddr( (struct sockaddr *)&icmpdst, m->m_pkthdr.rcvif); if (ia == NULL) diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index 3c340b376433..08c48996a798 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -789,9 +789,7 @@ passin: */ goto ours; } - if (ip->ip_dst.s_addr == (u_long)INADDR_BROADCAST) - goto ours; - if (ip->ip_dst.s_addr == INADDR_ANY) + if (in_broadcast(ip->ip_dst)) goto ours; /* RFC 3927 2.7: Do not forward packets to or from IN_LINKLOCAL. */ if (IN_LINKLOCAL(ntohl(ip->ip_dst.s_addr)) || diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c index 2a3c0248be60..02ad901259f4 100644 --- a/sys/netinet/sctp_output.c +++ b/sys/netinet/sctp_output.c @@ -3655,8 +3655,7 @@ sctp_process_cmsgs_for_init(struct sctp_tcb *stcb, struct mbuf *control, int *er sin.sin_len = sizeof(struct sockaddr_in); sin.sin_port = stcb->rport; m_copydata(control, cmsg_data_off, sizeof(struct in_addr), (caddr_t)&sin.sin_addr); - if ((sin.sin_addr.s_addr == INADDR_ANY) || - (sin.sin_addr.s_addr == INADDR_BROADCAST) || + if (in_broadcast(sin.sin_addr) || IN_MULTICAST(ntohl(sin.sin_addr.s_addr))) { *error = EINVAL; return (1); @@ -3687,8 +3686,7 @@ sctp_process_cmsgs_for_init(struct sctp_tcb *stcb, struct mbuf *control, int *er #ifdef INET if (IN6_IS_ADDR_V4MAPPED(&sin6.sin6_addr)) { in6_sin6_2_sin(&sin, &sin6); - if ((sin.sin_addr.s_addr == INADDR_ANY) || - (sin.sin_addr.s_addr == INADDR_BROADCAST) || + if (in_broadcast(sin.sin_addr) || IN_MULTICAST(ntohl(sin.sin_addr.s_addr))) { *error = EINVAL; return (1); diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index 6bbbacfa761e..185530e3bc5e 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -4130,8 +4130,7 @@ sctp_aloc_assoc_locked(struct sctp_inpcb *inp, struct sockaddr *firstaddr, sin = (struct sockaddr_in *)firstaddr; if ((ntohs(sin->sin_port) == 0) || - (sin->sin_addr.s_addr == INADDR_ANY) || - (sin->sin_addr.s_addr == INADDR_BROADCAST) || + in_broadcast(sin->sin_addr) || IN_MULTICAST(ntohl(sin->sin_addr.s_addr)) || ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) && (SCTP_IPV6_V6ONLY(inp) != 0))) { @@ -6009,8 +6008,7 @@ sctp_load_addresses_from_init(struct sctp_tcb *stcb, struct mbuf *m, /* Skip multi-cast addresses */ goto next_param; } - if ((sin.sin_addr.s_addr == INADDR_BROADCAST) || - (sin.sin_addr.s_addr == INADDR_ANY)) { + if (in_broadcast(sin.sin_addr)) { goto next_param; } sa = (struct sockaddr *)&sin; diff --git a/sys/netinet/sctputil.c b/sys/netinet/sctputil.c index 17e49b413464..ddfa71d5c7ed 100644 --- a/sys/netinet/sctputil.c +++ b/sys/netinet/sctputil.c @@ -6634,8 +6634,7 @@ sctp_connectx_helper_add(struct sctp_tcb *stcb, struct sockaddr *addr, case AF_INET: incr = sizeof(struct sockaddr_in); sin = (struct sockaddr_in *)sa; - if ((sin->sin_addr.s_addr == INADDR_ANY) || - (sin->sin_addr.s_addr == INADDR_BROADCAST) || + if (in_broadcast(sin->sin_addr) || IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) { SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, EINVAL); (void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502220212.51M2CktR099284>