/* * Copyright (C) 2012 by Darren Reed. * * See the IPFILTER.LICENCE file for details on licencing. */ typedef struct iface { int if_MTU; char *if_name; struct in_addr if_addr; struct ether_addr if_eaddr; struct iface *if_next; int if_fd; } iface_t; typedef struct send { struct iface *snd_if; struct in_addr snd_gw; } send_t; typedef struct arp { struct in_addr arp_addr; struct ether_addr arp_eaddr; struct arp *arp_next; } arp_t; typedef struct aniphdr { union { ip_t *ahu_ip; char *ahu_data; tcphdr_t *ahu_tcp; udphdr_t *ahu_udp; icmphdr_t *ahu_icmp; } ah_un; int ah_optlen; int ah_lastopt; int ah_p; size_t ah_len; struct aniphdr *ah_next; struct aniphdr *ah_prev; } aniphdr_t; #define ah_ip ah_un.ahu_ip #define ah_data ah_un.ahu_data #define ah_tcp ah_un.ahu_tcp #define ah_udp ah_un.ahu_udp #define ah_icmp ah_un.ahu_icmp extern int get_arpipv4(char *, char *);