root/sbin/ipf/iplang/iplang.h

/*
 * 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 *);