Add query ubus call
[project/mdnsd.git] / interface.h
index fe709aa..50d7071 100644 (file)
 #include <sys/types.h>
 #include <sys/uio.h>
 
+#include <arpa/inet.h>
+
 #include <libubox/uloop.h>
 #include <libubox/vlist.h>
 
 extern struct vlist_tree interfaces;
-extern struct interface *cur_iface;
 
 struct interface {
        struct vlist_node node;
+       struct interface *peer;
 
        const char *name;
+       char *id;
        struct uloop_fd fd;
+       struct uloop_timeout reconnect;
 
+       int v6;
+       int multicast;
        int ifindex;
-       const char *ip;
+
+       struct in_addr v4_addr;
+       struct in_addr v4_netmask;
+       struct in6_addr v6_addr;
+       struct in6_addr v6_netmask;
+       char v4_addrs[16];
+       char v6_addrs[64];
+
+       struct uloop_timeout announce_timer;
+       int announce_state;
+
+       char *mcast_addr;
 };
 
 int interface_add(const char *name);
+void interface_shutdown(void);
 int interface_send_packet(struct interface *iface, struct iovec *iov, int iov_len);
-int interface_socket_setup(struct interface *iface);
+struct interface* interface_get(const char *name, int v6, int multicast);
 
 #endif