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