From fca3fee38ea48843f277e26624e9555d8b74edc5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20H=C3=A4rdeman?= Date: Tue, 18 Nov 2025 08:55:41 +0100 Subject: [PATCH] netlink: add netmask for IPv4 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Add a netmask member to struct odhcpd_ipaddr, this is mostly for convenience. Signed-off-by: David Härdeman Link: https://github.com/openwrt/odhcpd/pull/320 Signed-off-by: Álvaro Fernández Rojas --- src/netlink.c | 3 +++ src/odhcpd.h | 1 + 2 files changed, 4 insertions(+) diff --git a/src/netlink.c b/src/netlink.c index d09e3f8..c07a9e4 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -571,6 +571,9 @@ static int cb_addr_valid(struct nl_msg *msg, void *arg) memset(&oaddrs[ctxt->ret], 0, sizeof(oaddrs[ctxt->ret])); oaddrs[ctxt->ret].prefix_len = ifa->ifa_prefixlen; + if (ifa->ifa_family == AF_INET) + oaddrs[ctxt->ret].netmask = htonl(~((1U << (32 - ifa->ifa_prefixlen)) - 1)); + nla_memcpy(&oaddrs[ctxt->ret].addr, nla_addr, sizeof(oaddrs[ctxt->ret].addr)); if (nla[IFA_BROADCAST]) diff --git a/src/odhcpd.h b/src/odhcpd.h index e708f34..88135f1 100644 --- a/src/odhcpd.h +++ b/src/odhcpd.h @@ -176,6 +176,7 @@ struct odhcpd_ipaddr { /* IPv4 only */ struct { struct in_addr broadcast; + in_addr_t netmask; }; }; }; -- 2.30.2