odhcpd: fix compilation with GCC10
[oweals/odhcpd.git] / src / odhcpd.h
index 4a07252322d40d228bb0d1851e7560089e34a227..09013c4b094b76f1555f6bbe7e951c746821329c 100644 (file)
@@ -44,6 +44,7 @@
 struct interface;
 struct nl_sock;
 extern struct vlist_tree leases;
+extern struct config config;
 
 struct odhcpd_event {
        struct uloop_fd uloop;
@@ -129,7 +130,8 @@ enum odhcpd_assignment_flags {
        OAF_STATIC              = (1 << 2),
        OAF_BROKEN_HOSTNAME     = (1 << 3),
        OAF_DHCPV4              = (1 << 4),
-       OAF_DHCPV6              = (1 << 5),
+       OAF_DHCPV6_NA           = (1 << 5),
+       OAF_DHCPV6_PD           = (1 << 6),
 };
 
 struct config {
@@ -138,7 +140,7 @@ struct config {
        char *dhcp_cb;
        char *dhcp_statefile;
        int log_level;
-} config;
+};
 
 
 struct lease {
@@ -271,6 +273,9 @@ struct interface {
        uint32_t ra_hoplimit;
        int ra_mtu;
 
+       // DHCP
+       uint32_t dhcp_leasetime;
+
        // DHCPv4
        struct in_addr dhcpv4_start;
        struct in_addr dhcpv4_end;
@@ -283,7 +288,6 @@ struct interface {
        size_t dhcpv4_router_cnt;
        struct in_addr *dhcpv4_dns;
        size_t dhcpv4_dns_cnt;
-       uint32_t dhcpv4_leasetime;
        bool dhcpv4_forcereconf;
 
        // DNS
@@ -387,6 +391,7 @@ void dhcpv6_ia_write_statefile(void);
 int netlink_add_netevent_handler(struct netevent_handler *hdlr);
 ssize_t netlink_get_interface_addrs(const int ifindex, bool v6,
                struct odhcpd_ipaddr **addrs);
+int netlink_get_interface_proxy_neigh(int ifindex, const struct in6_addr *addr);
 int netlink_setup_route(const struct in6_addr *addr, const int prefixlen,
                const int ifindex, const struct in6_addr *gw,
                const uint32_t metric, const bool add);