ipmon.h revision 145510
1114879Sjulian/* $NetBSD$ */ 2114879Sjulian 3114879Sjulian/* 4114879Sjulian * Copyright (C) 1993-2001 by Darren Reed. 5114879Sjulian * 6114879Sjulian * See the IPFILTER.LICENCE file for details on licencing. 7114879Sjulian * 8114879Sjulian * @(#)ip_fil.h 1.35 6/5/96 9114879Sjulian * Id: ipmon.h,v 2.8 2003/07/25 22:16:20 darrenr Exp 10114879Sjulian */ 11114879Sjulian 12114879Sjulian 13114879Sjuliantypedef struct ipmon_action { 14114879Sjulian struct ipmon_action *ac_next; 15114879Sjulian int ac_mflag; /* collection of things to compare */ 16114879Sjulian int ac_dflag; /* flags to compliment the doing fields */ 17114879Sjulian int ac_syslog; /* = 1 to syslog rules. */ 18114879Sjulian char *ac_savefile; /* filename to save log records to */ 19114879Sjulian FILE *ac_savefp; 20114879Sjulian int ac_direction; 21114879Sjulian char ac_group[FR_GROUPLEN]; 22114879Sjulian char ac_nattag[16]; 23114879Sjulian u_32_t ac_logtag; 24114879Sjulian int ac_type; /* nat/state/ipf */ 25114879Sjulian int ac_proto; 26114879Sjulian int ac_rule; 27114879Sjulian int ac_packet; 28114879Sjulian int ac_second; 29114879Sjulian int ac_result; 30114879Sjulian u_32_t ac_sip; 31114879Sjulian u_32_t ac_smsk; 32114879Sjulian u_32_t ac_dip; 33114879Sjulian u_32_t ac_dmsk; 34114879Sjulian u_short ac_sport; 35114879Sjulian u_short ac_dport; 36114879Sjulian char *ac_exec; /* execute argument */ 37114879Sjulian char *ac_run; /* actual command that gets run */ 38114879Sjulian char *ac_iface; 39114879Sjulian /* 40114879Sjulian * used with ac_packet/ac_second 41114879Sjulian */ 42114879Sjulian struct timeval ac_last; 43114879Sjulian int ac_pktcnt; 44114879Sjulian} ipmon_action_t; 45114879Sjulian 46114879Sjulian#define ac_lastsec ac_last.tv_sec 47114879Sjulian#define ac_lastusec ac_last.tv_usec 48114879Sjulian 49114879Sjulian/* 50114879Sjulian * Flags indicating what fields to do matching upon (ac_mflag). 51114879Sjulian */ 52114879Sjulian#define IPMAC_DIRECTION 0x0001 53114879Sjulian#define IPMAC_DSTIP 0x0002 54114879Sjulian#define IPMAC_DSTPORT 0x0004 55114879Sjulian#define IPMAC_EVERY 0x0008 56114879Sjulian#define IPMAC_GROUP 0x0010 57114879Sjulian#define IPMAC_INTERFACE 0x0020 58114879Sjulian#define IPMAC_LOGTAG 0x0040 59114879Sjulian#define IPMAC_NATTAG 0x0080 60114879Sjulian#define IPMAC_PROTOCOL 0x0100 61114879Sjulian#define IPMAC_RESULT 0x0200 62114879Sjulian#define IPMAC_RULE 0x0400 63114879Sjulian#define IPMAC_SRCIP 0x0800 64114879Sjulian#define IPMAC_SRCPORT 0x1000 65114879Sjulian#define IPMAC_TYPE 0x2000 66114879Sjulian#define IPMAC_WITH 0x4000 67114879Sjulian 68114879Sjulian#define IPMR_BLOCK 1 69114879Sjulian#define IPMR_PASS 2 70114879Sjulian#define IPMR_NOMATCH 3 71114879Sjulian#define IPMR_LOG 4 72114879Sjulian 73114879Sjulian#define IPMDO_SAVERAW 0x0001 74114879Sjulian 75114879Sjulian#define OPT_SYSLOG 0x001 76114879Sjulian#define OPT_RESOLVE 0x002 77114879Sjulian#define OPT_HEXBODY 0x004 78114879Sjulian#define OPT_VERBOSE 0x008 79114879Sjulian#define OPT_HEXHDR 0x010 80114879Sjulian#define OPT_TAIL 0x020 81114879Sjulian#define OPT_NAT 0x080 82114879Sjulian#define OPT_STATE 0x100 83114879Sjulian#define OPT_FILTER 0x200 84114879Sjulian#define OPT_PORTNUM 0x400 85114879Sjulian#define OPT_LOGALL (OPT_NAT|OPT_STATE|OPT_FILTER) 86114879Sjulian 87114879Sjulian#define HOSTNAME_V4(a,b) hostname((a), 4, (u_32_t *)&(b)) 88114879Sjulian 89114879Sjulian#ifndef LOGFAC 90114879Sjulian#define LOGFAC LOG_LOCAL0 91114879Sjulian#endif 92114879Sjulian 93114879Sjulianextern int load_config __P((char *)); 94114879Sjulianextern void dumphex __P((FILE *, int, char *, int)); 95114879Sjulianextern int check_action __P((char *, char *, int, int)); 96114879Sjulianextern char *getword __P((int)); 97114879Sjulian