X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fmdnsd.git;a=blobdiff_plain;f=interface.h;h=4ba6eeeb322dda247c2ff812100fceda1982f774;hp=b9ecd8aec82ebdd40fa6ca4a533ec53f067d0633;hb=HEAD;hpb=e4cd9b52ef1e73c81143e5c3d09e08e86a5a49ae;ds=sidebyside diff --git a/interface.h b/interface.h index b9ecd8a..4ba6eee 100644 --- a/interface.h +++ b/interface.h @@ -18,6 +18,8 @@ #include #include +#include + #include #include @@ -25,20 +27,33 @@ extern struct vlist_tree interfaces; 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); -int interface_send_packet(struct interface *iface, struct iovec *iov, int iov_len); -int interface_socket_setup(struct interface *iface); +void interface_shutdown(void); +int interface_send_packet(struct interface *iface, struct sockaddr *to, struct iovec *iov, int iov_len); +struct interface* interface_get(const char *name, int v6, int multicast); #endif