From nobody Mon Jul 27 21:55:26 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4h8C7y4Vzmz6lvTn for ; Mon, 27 Jul 2026 21:55:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4h8C7y3hTfz44GK for ; Mon, 27 Jul 2026 21:55:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785189326; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9bok+485JuoiGIuP4+YZEbNh0NT1LEoOC1lXJzSdI/o=; b=vMgpl4r805i3HXtXwMCJqqZ/mcZSNCCca1CqzGIwVVqJOZcjRN1OPR/QVVnfNzAKrehNy+ haI9dBVtTtgewKoYvpmkO9UN2iBQM0sdMgQqJIix5vsON2La60UD/k57+bUff18Pj4Zrp2 oXgjCHZk4vAqSL4btOBYxmZFy80nda2N1LO8P2L4LL1if5JPvuBvq25kLtMecGEajrqsWh x326sUQYxjsTjZMT/LFdcfPNvRdw80lNKfcw9ePGHFDIYVsH6vGVFo8ReEgk8UvQ7KfIaY 9ee7lmOg833aUL/3E926zUsFB3Gr2nmuBnb5DDsfbECbDC7Xm/XtHgAGxaseWg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1785189326; a=rsa-sha256; cv=none; b=kUnEk+JyqHdgT7A7htrd0I4r+FZr6toAyS0kc94hsbvjZPgPOwj+4ofZ7jM0nKYOOxMgao pbROFTQdeO4IWOsqBMUJBSX1V6ppkjQIlJjcPxAzhzK33vb2dMR0+2TLNIKajcp5S5rYJu l67atXwotljHR3G6L5tRYsigZ3f28u9fpY+r23WkD6Rv7RTPbLfHNYO23ZeDDJwZe8LNI+ 0Xzjd63I1WQA0/yagDs6gXcdFrZzuIXKbHiJFkE7GkQNBgsrrIRszfJbGeUlYmNRF12Lsc 5oi6ewiUagtD/KYYzzL91urmdq5a5r8hsShavSLuMiv2z8AvsYObDgJ0/88LtQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785189326; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9bok+485JuoiGIuP4+YZEbNh0NT1LEoOC1lXJzSdI/o=; b=S34PTjDm+ydaeQSG+d+O+ULoAknEtC0rm6el7KZNlkLQ9r6HYIA1yjLMWlUkyRhKl+zKzM 5Y46M0wZjH5B7En1/+WC9iYcy87FHHTakvftSqoZ8zBjhIGahrtfFNcEF+M7ttzaN0icxe XpgKZH4RKXpjdkA9pZqPa7W6j4biDSDCtNKT4i3xvHRou5cAFo8PTSCqH8IH7mJXniGsBy 6OyOMvH4Z5dn61FJYVt74gzWGSLBnX/2PIhu+royMT3hhVZYB1m0+ba6MbTIpGl27allDV 6n764RjNX3hIG7v/ZriImvhashEpZNkp45FbV6u4NySWrsTpiSuf1zur5ipuRg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h8C7y27gwz1Ptn for ; Mon, 27 Jul 2026 21:55:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 23104 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 27 Jul 2026 21:55:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Bruce M Simpson Subject: git: e52655a93909 - main - netinet: Promote IFP_TO_IA() from macro to function in_ifprimaryaddr(). List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bms X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e52655a939099402bab7e603ced58b17af106e23 Auto-Submitted: auto-generated Date: Mon, 27 Jul 2026 21:55:26 +0000 Message-Id: <6a67d3ce.23104.20182398@gitrepo.freebsd.org> The branch main has been updated by bms: URL: https://cgit.FreeBSD.org/src/commit/?id=e52655a939099402bab7e603ced58b17af106e23 commit e52655a939099402bab7e603ced58b17af106e23 Author: Bruce M Simpson AuthorDate: 2026-02-18 08:29:58 +0000 Commit: Bruce M Simpson CommitDate: 2026-07-27 21:55:12 +0000 netinet: Promote IFP_TO_IA() from macro to function in_ifprimaryaddr(). in_ifprimaryaddr() exists only to support IPv4 multicast usage. Since the adoption of epoch tracking, ifa_ref() is no longer required in its body; that was originally introduced by rwatson in 2009. We could not use __deprecated1() from anyway, as IFP_TO_IA() is a macro, not a function. Approved by: glebius (2026-02-26) Reviewed by: adrian, glebius, pouria Differential Revision: D55344 --- sys/netinet/in.c | 22 ++++++++++++++++++++++ sys/netinet/in.h | 1 + sys/netinet/in_var.h | 2 +- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 510cfa79d54b..508bc43bc63c 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -206,6 +206,28 @@ in_ifhasaddr(struct ifnet *ifp, struct in_addr in) return (false); } +/* + * Return the first configured IPv4 address on the given ifnet. + * Replaces deprecated IFP_TO_IA() from 4.3BSD. + * Used only by IPv4 multicast, where source-address selection + * has not yet been introduced. + * + * Returns ifa or NULL. + */ +struct in_ifaddr * +in_ifprimaryaddr(struct ifnet *ifp) +{ + struct ifaddr *ifa; + + NET_EPOCH_ASSERT(); + + CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) + if (ifa->ifa_addr->sa_family == AF_INET) + break; + + return ((struct in_ifaddr *)ifa); +} + /* * Return a reference to the interface address which is different to * the supplied one but with same IP address value. diff --git a/sys/netinet/in.h b/sys/netinet/in.h index 94f4bb682489..c4698b7056eb 100644 --- a/sys/netinet/in.h +++ b/sys/netinet/in.h @@ -677,6 +677,7 @@ bool in_localip(struct in_addr); bool in_localip_fib(struct in_addr, uint16_t); bool in_ifhasaddr(struct ifnet *, struct in_addr); struct in_ifaddr *in_findlocal(uint32_t, bool); +struct in_ifaddr *in_ifprimaryaddr(struct ifnet *); int inet_aton(const char *, struct in_addr *); /* in libkern */ char *inet_ntoa_r(struct in_addr ina, char *buf); /* in libkern */ char *inet_ntop(int, const void *, char *, socklen_t); /* in libkern */ diff --git a/sys/netinet/in_var.h b/sys/netinet/in_var.h index 6d843cf2f6ef..191f3a54dbe5 100644 --- a/sys/netinet/in_var.h +++ b/sys/netinet/in_var.h @@ -153,7 +153,7 @@ do { \ /* * Macro for finding the internet address structure (in_ifaddr) corresponding - * to a given interface (ifnet structure). + * to a given interface (ifnet structure). DEPRECATED. */ #define IFP_TO_IA(ifp, ia) \ /* struct ifnet *ifp; */ \