1 /* 2 * Copyright (C) 2014 John Crispin <blogic@openwrt.org> 3 * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU Lesser General Public License version 2.1 7 * as published by the Free Software Foundation 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 */ 14 15 #ifndef __MDNS_INTERFACE_H 16 #define __MDNS_INTERFACE_H 17 18 #include <sys/types.h> 19 #include <sys/uio.h> 20 21 #include <arpa/inet.h> 22 23 #include <libubox/uloop.h> 24 #include <libubox/vlist.h> 25 26 extern struct vlist_tree interfaces; 27 28 struct interface { 29 struct vlist_node node; 30 struct interface *peer; 31 32 const char *name; 33 char *id; 34 struct uloop_fd fd; 35 struct uloop_timeout reconnect; 36 37 int v6; 38 int multicast; 39 int ifindex; 40 41 struct in_addr v4_addr; 42 struct in_addr v4_netmask; 43 struct in6_addr v6_addr; 44 struct in6_addr v6_netmask; 45 char v4_addrs[16]; 46 char v6_addrs[64]; 47 48 struct uloop_timeout announce_timer; 49 int announce_state; 50 51 char *mcast_addr; 52 }; 53 54 int interface_add(const char *name); 55 void interface_shutdown(void); 56 int interface_send_packet(struct interface *iface, struct sockaddr *to, struct iovec *iov, int iov_len); 57 struct interface* interface_get(const char *name, int v6, int multicast); 58 59 #endif 60
This page was automatically generated by LXR 0.3.1. • OpenWrt