1*41edb306SCy Schubert 2*41edb306SCy Schubert /* 3*41edb306SCy Schubert * Copyright (C) 2012 by Darren Reed. 4*41edb306SCy Schubert * 5*41edb306SCy Schubert * See the IPFILTER.LICENCE file for details on licencing. 6*41edb306SCy Schubert */ 7*41edb306SCy Schubert typedef struct iface { 8*41edb306SCy Schubert int if_MTU; 9*41edb306SCy Schubert char *if_name; 10*41edb306SCy Schubert struct in_addr if_addr; 11*41edb306SCy Schubert struct ether_addr if_eaddr; 12*41edb306SCy Schubert struct iface *if_next; 13*41edb306SCy Schubert int if_fd; 14*41edb306SCy Schubert } iface_t; 15*41edb306SCy Schubert 16*41edb306SCy Schubert 17*41edb306SCy Schubert typedef struct send { 18*41edb306SCy Schubert struct iface *snd_if; 19*41edb306SCy Schubert struct in_addr snd_gw; 20*41edb306SCy Schubert } send_t; 21*41edb306SCy Schubert 22*41edb306SCy Schubert 23*41edb306SCy Schubert typedef struct arp { 24*41edb306SCy Schubert struct in_addr arp_addr; 25*41edb306SCy Schubert struct ether_addr arp_eaddr; 26*41edb306SCy Schubert struct arp *arp_next; 27*41edb306SCy Schubert } arp_t; 28*41edb306SCy Schubert 29*41edb306SCy Schubert 30*41edb306SCy Schubert typedef struct aniphdr { 31*41edb306SCy Schubert union { 32*41edb306SCy Schubert ip_t *ahu_ip; 33*41edb306SCy Schubert char *ahu_data; 34*41edb306SCy Schubert tcphdr_t *ahu_tcp; 35*41edb306SCy Schubert udphdr_t *ahu_udp; 36*41edb306SCy Schubert icmphdr_t *ahu_icmp; 37*41edb306SCy Schubert } ah_un; 38*41edb306SCy Schubert int ah_optlen; 39*41edb306SCy Schubert int ah_lastopt; 40*41edb306SCy Schubert int ah_p; 41*41edb306SCy Schubert size_t ah_len; 42*41edb306SCy Schubert struct aniphdr *ah_next; 43*41edb306SCy Schubert struct aniphdr *ah_prev; 44*41edb306SCy Schubert } aniphdr_t; 45*41edb306SCy Schubert 46*41edb306SCy Schubert #define ah_ip ah_un.ahu_ip 47*41edb306SCy Schubert #define ah_data ah_un.ahu_data 48*41edb306SCy Schubert #define ah_tcp ah_un.ahu_tcp 49*41edb306SCy Schubert #define ah_udp ah_un.ahu_udp 50*41edb306SCy Schubert #define ah_icmp ah_un.ahu_icmp 51*41edb306SCy Schubert 52*41edb306SCy Schubert extern int get_arpipv4(char *, char *); 53*41edb306SCy Schubert 54