From: David Härdeman Date: Mon, 17 Nov 2025 22:58:48 +0000 (+0100) Subject: odhcpd: rename iface->addr4 -> iface->oaddrs4 X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=75dfe0e71050374a04cead57924bc58e9b27dd70;p=project%2Fodhcpd.git odhcpd: rename iface->addr4 -> iface->oaddrs4 Rename iface->addr4 to iface->oaddrs4, to make it clearer from a cursory glance that this isn't e.g. "struct in_addr" addresses but a number of "struct odhcpd_ipaddr" addresses. At the same time, rename iface->addr4_len to iface->oaddrs4_cnt, to make it clear that this is a count and not e.g. an allocation length. Signed-off-by: David Härdeman Link: https://github.com/openwrt/odhcpd/pull/320 Signed-off-by: Álvaro Fernández Rojas --- diff --git a/src/config.c b/src/config.c index 747f6fa..afecffe 100644 --- a/src/config.c +++ b/src/config.c @@ -379,7 +379,7 @@ static void close_interface(struct interface *iface) uloop_timeout_cancel(&iface->timer_rs); clean_interface(iface); - free(iface->addr4); + free(iface->oaddrs4); free(iface->addr6); free(iface->ifname); free(iface); @@ -1079,10 +1079,10 @@ static int avl_ipv4_cmp(const void *k1, const void *k2, _o_unused void *ptr) int config_parse_interface(void *data, size_t len, const char *name, bool overwrite) { - struct odhcpd_ipaddr *addrs = NULL; struct interface *iface; struct blob_attr *tb[IFACE_ATTR_MAX], *c; - ssize_t addrs_len; + struct odhcpd_ipaddr *oaddrs = NULL; + ssize_t oaddrs_cnt; bool get_addrs = false; int mode; const char *ifname = NULL; @@ -1150,27 +1150,27 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr } if (get_addrs) { - addrs_len = netlink_get_interface_addrs(iface->ifindex, - true, &iface->addr6); + oaddrs_cnt = netlink_get_interface_addrs(iface->ifindex, + true, &iface->addr6); - if (addrs_len > 0) - iface->addr6_len = addrs_len; + if (oaddrs_cnt > 0) + iface->addr6_len = oaddrs_cnt; - addrs_len = netlink_get_interface_addrs(iface->ifindex, - false, &iface->addr4); - if (addrs_len > 0) - iface->addr4_len = addrs_len; + oaddrs_cnt = netlink_get_interface_addrs(iface->ifindex, + false, &iface->oaddrs4); + if (oaddrs_cnt > 0) + iface->oaddrs4_cnt = oaddrs_cnt; } - addrs_len = netlink_get_interface_linklocal(iface->ifindex, &addrs); - if (addrs_len > 0) { - for (ssize_t i = 0; i < addrs_len; i++) { - if (!addrs[i].tentative) { + oaddrs_cnt = netlink_get_interface_linklocal(iface->ifindex, &oaddrs); + if (oaddrs_cnt > 0) { + for (ssize_t i = 0; i < oaddrs_cnt; i++) { + if (!oaddrs[i].tentative) { iface->have_link_local = true; break; } } - free(addrs); + free(oaddrs); } iface->inuse = true; diff --git a/src/dhcpv4.c b/src/dhcpv4.c index 78d7c65..63d7a4d 100644 --- a/src/dhcpv4.c +++ b/src/dhcpv4.c @@ -1361,19 +1361,19 @@ static int dhcpv4_setup_addresses(struct interface *iface) iface->dhcpv4_bcast.s_addr = INADDR_ANY; iface->dhcpv4_mask.s_addr = INADDR_ANY; - if (!iface->addr4_len) { + if (!iface->oaddrs4_cnt) { warn("No network(s) available on %s", iface->name); return -1; } - for (size_t i = 0; i < iface->addr4_len && start && end; i++) { - struct in_addr *addr = &iface->addr4[i].addr.in; + for (size_t i = 0; i < iface->oaddrs4_cnt && start && end; i++) { + struct in_addr *addr = &iface->oaddrs4[i].addr.in; struct in_addr mask; if (addr_is_fr_ip(iface, addr)) continue; - odhcpd_bitlen2netmask(false, iface->addr4[i].prefix_len, &mask); + odhcpd_bitlen2netmask(false, iface->oaddrs4[i].prefix_len, &mask); if ((start & ntohl(~mask.s_addr)) == start && (end & ntohl(~mask.s_addr)) == end && end < ntohl(~mask.s_addr)) { /* Exclude broadcast address */ @@ -1382,22 +1382,22 @@ static int dhcpv4_setup_addresses(struct interface *iface) iface->dhcpv4_end_ip.s_addr = htonl(end) | (addr->s_addr & mask.s_addr); iface->dhcpv4_local = *addr; - iface->dhcpv4_bcast = iface->addr4[i].broadcast; + iface->dhcpv4_bcast = iface->oaddrs4[i].broadcast; iface->dhcpv4_mask = mask; return 0; } } /* Don't allocate IP range for subnets smaller than /28 */ - if (iface->addr4[0].prefix_len > MAX_PREFIX_LEN) { + if (iface->oaddrs4[0].prefix_len > MAX_PREFIX_LEN) { warn("Auto allocation of DHCP range fails on %s (prefix length must be < %d).", iface->name, MAX_PREFIX_LEN + 1); return -1; } - iface->dhcpv4_local = iface->addr4[0].addr.in; - iface->dhcpv4_bcast = iface->addr4[0].broadcast; - odhcpd_bitlen2netmask(false, iface->addr4[0].prefix_len, &iface->dhcpv4_mask); + iface->dhcpv4_local = iface->oaddrs4[0].addr.in; + iface->dhcpv4_bcast = iface->oaddrs4[0].broadcast; + odhcpd_bitlen2netmask(false, iface->oaddrs4[0].prefix_len, &iface->dhcpv4_mask); end = start = iface->dhcpv4_local.s_addr & iface->dhcpv4_mask.s_addr; /* Auto allocate ranges */ diff --git a/src/netlink.c b/src/netlink.c index 5396971..4caf189 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -130,12 +130,12 @@ static void handle_rtnl_event(struct odhcpd_event *e) static void refresh_iface_addr4(int ifindex) { - struct odhcpd_ipaddr *addr = NULL; + struct odhcpd_ipaddr *oaddrs4 = NULL; struct interface *iface; - ssize_t len = netlink_get_interface_addrs(ifindex, false, &addr); + ssize_t oaddrs4_cnt = netlink_get_interface_addrs(ifindex, false, &oaddrs4); bool change = false; - if (len < 0) + if (oaddrs4_cnt < 0) return; avl_for_each_element(&interfaces, iface, avl) { @@ -146,36 +146,36 @@ static void refresh_iface_addr4(int ifindex) memset(&event_info, 0, sizeof(event_info)); event_info.iface = iface; - event_info.addrs_old.addrs = iface->addr4; - event_info.addrs_old.len = iface->addr4_len; + event_info.addrs_old.addrs = iface->oaddrs4; + event_info.addrs_old.len = iface->oaddrs4_cnt; if (!change) { - change = len != (ssize_t)iface->addr4_len; - for (ssize_t i = 0; !change && i < len; ++i) { - if (addr[i].addr.in.s_addr != iface->addr4[i].addr.in.s_addr) + change = oaddrs4_cnt != (ssize_t)iface->oaddrs4_cnt; + for (ssize_t i = 0; !change && i < oaddrs4_cnt; i++) { + if (oaddrs4[i].addr.in.s_addr != iface->oaddrs4[i].addr.in.s_addr) change = true; } } - iface->addr4 = addr; - iface->addr4_len = len; + iface->oaddrs4 = oaddrs4; + iface->oaddrs4_cnt = oaddrs4_cnt; if (change) call_netevent_handler_list(NETEV_ADDRLIST_CHANGE, &event_info); free(event_info.addrs_old.addrs); - if (!len) + if (!oaddrs4_cnt) continue; - addr = malloc(len * sizeof(*addr)); - if (!addr) + oaddrs4 = malloc(oaddrs4_cnt * sizeof(*oaddrs4)); + if (!oaddrs4) break; - memcpy(addr, iface->addr4, len * sizeof(*addr)); + memcpy(oaddrs4, iface->oaddrs4, oaddrs4_cnt * sizeof(*oaddrs4)); } - free(addr); + free(oaddrs4); } static void refresh_iface_addr6(int ifindex) diff --git a/src/odhcpd.h b/src/odhcpd.h index c1a31b6..873999b 100644 --- a/src/odhcpd.h +++ b/src/odhcpd.h @@ -378,8 +378,8 @@ struct interface { int ndp_ping_fd; // IPv4 runtime data - struct odhcpd_ipaddr *addr4; - size_t addr4_len; + struct odhcpd_ipaddr *oaddrs4; // IPv4 addresses assigned to this interface + size_t oaddrs4_cnt; // Number of IPv4 addresses assigned to this interface // DHCPv4 runtime data struct odhcpd_event dhcpv4_event;