dhcpv6: fix compile issues when CER-ID extension is enabled
[project/odhcpd.git] / src / dhcpv6.c
index 902bdbf..462a85e 100644 (file)
@@ -34,16 +34,14 @@ static void handle_client_request(void *addr, void *data, size_t len,
                struct interface *iface, void *dest_addr);
 
 
-
 // Create socket and register events
-int init_dhcpv6(void)
+int dhcpv6_init(void)
 {
        dhcpv6_ia_init();
        return 0;
 }
 
-
-int setup_dhcpv6_interface(struct interface *iface, bool enable)
+int dhcpv6_setup_interface(struct interface *iface, bool enable)
 {
        if (iface->dhcpv6_event.uloop.fd > 0) {
                uloop_fd_delete(&iface->dhcpv6_event.uloop);
@@ -95,7 +93,7 @@ int setup_dhcpv6_interface(struct interface *iface, bool enable)
                odhcpd_register(&iface->dhcpv6_event);
        }
 
-       return setup_dhcpv6_ia_interface(iface, enable);
+       return dhcpv6_setup_ia_interface(iface, enable);
 }
 
 enum {
@@ -333,12 +331,12 @@ static void handle_client_request(void *addr, void *data, size_t len,
 
                        if (IN6_IS_ADDR_UNSPECIFIED(&cerid.addr)) {
                                struct odhcpd_ipaddr *addrs;
-                               ssize_t len = odhcpd_get_interface_addresses(0, true, &addrs);
+                               ssize_t len = netlink_get_interface_addrs(0, true, &addrs);
 
                                for (ssize_t i = 0; i < len; ++i)
                                        if (IN6_IS_ADDR_UNSPECIFIED(&cerid.addr)
                                                        || memcmp(&addrs[i].addr, &cerid.addr, sizeof(cerid.addr)) < 0)
-                                               cerid.addr = addrs[i].addr;
+                                               cerid.addr = addrs[i].addr.in6;
 
                                free(addrs);
                        }
@@ -485,17 +483,17 @@ static struct odhcpd_ipaddr *relay_link_address(struct interface *iface)
        struct odhcpd_ipaddr *addr = NULL;
        time_t now = odhcpd_time();
 
-       for (size_t i = 0; i < iface->ia_addr_len; i++) {
-               if (iface->ia_addr[i].valid <= (uint32_t)now)
+       for (size_t i = 0; i < iface->addr6_len; i++) {
+               if (iface->addr6[i].valid <= (uint32_t)now)
                        continue;
 
-               if (iface->ia_addr[i].preferred > (uint32_t)now) {
-                       addr = &iface->ia_addr[i];
+               if (iface->addr6[i].preferred > (uint32_t)now) {
+                       addr = &iface->addr6[i];
                        break;
                }
 
-               if (!addr || (iface->ia_addr[i].valid > addr->valid))
-                       addr = &iface->ia_addr[i];
+               if (!addr || (iface->addr6[i].valid > addr->valid))
+                       addr = &iface->addr6[i];
        }
 
        return addr;