odhcpd: rename iface->addr4 -> iface->oaddrs4
authorDavid Härdeman <[email protected]>
Mon, 17 Nov 2025 22:58:48 +0000 (23:58 +0100)
committerÁlvaro Fernández Rojas <[email protected]>
Thu, 27 Nov 2025 07:23:50 +0000 (08:23 +0100)
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 <[email protected]>
Link: https://github.com/openwrt/odhcpd/pull/320
Signed-off-by: Álvaro Fernández Rojas <[email protected]>
src/config.c
src/dhcpv4.c
src/netlink.c
src/odhcpd.h

index 747f6fad5e80c744a35ad5e0c740b813e2f14b65..afecffe7ba6df2213a77489b02e7abc74f4f2c4a 100644 (file)
@@ -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;
index 78d7c65001d49a8b0b941edacec1735405bf76c1..63d7a4d89ccdead19f431d38bdfa80849f265a7e 100644 (file)
@@ -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 */
index 539697184fe8a51fc326416ddfc816fa8533d08a..4caf189c69daf23a2e09ec3820ccae09b4b5bae8 100644 (file)
@@ -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)
index c1a31b670c5766003e84fce208c33490324139d0..873999bac8b84281e27ff68a56333d7330f03b3f 100644 (file)
@@ -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;