| /* |
| * Copyright (C) 1993-2001 by Darren Reed. |
| * |
| * See the IPFILTER.LICENCE file for details on licencing. |
| * |
| * @(#)ip_fil.h 1.35 6/5/96 |
| * $Id$ |
| */ |
| |
| |
| typedef struct ipmon_snmp_s { |
| int is_fd; |
| char *is_community; |
| struct sockaddr_in is_sin; |
| } ipmon_snmp_t; |
| |
| typedef struct ipmon_action { |
| struct ipmon_action *ac_next; |
| int ac_mflag; /* collection of things to compare */ |
| int ac_dflag; /* flags to compliment the doing fields */ |
| int ac_syslog; /* = 1 to syslog rules. */ |
| char *ac_savefile; /* filename to save log records to */ |
| FILE *ac_savefp; |
| int ac_logfac; |
| int ac_logpri; |
| int ac_direction; |
| char ac_group[FR_GROUPLEN]; |
| char ac_nattag[16]; |
| u_32_t ac_logtag; |
| int ac_type; /* nat/state/ipf */ |
| int ac_proto; |
| int ac_rule; |
| int ac_packet; |
| int ac_second; |
| int ac_result; |
| u_32_t ac_sip; |
| u_32_t ac_smsk; |
| u_32_t ac_dip; |
| u_32_t ac_dmsk; |
| u_short ac_sport; |
| u_short ac_dport; |
| char *ac_exec; /* execute argument */ |
| char *ac_run; /* actual command that gets run */ |
| char *ac_iface; |
| ipmon_snmp_t ac_v1; |
| ipmon_snmp_t ac_v2; |
| /* |
| * used with ac_packet/ac_second |
| */ |
| struct timeval ac_last; |
| int ac_pktcnt; |
| } ipmon_action_t; |
| |
| #define ac_lastsec ac_last.tv_sec |
| #define ac_lastusec ac_last.tv_usec |
| |
| /* |
| * Flags indicating what fields to do matching upon (ac_mflag). |
| */ |
| #define IPMAC_DIRECTION 0x0001 |
| #define IPMAC_DSTIP 0x0002 |
| #define IPMAC_DSTPORT 0x0004 |
| #define IPMAC_EVERY 0x0008 |
| #define IPMAC_GROUP 0x0010 |
| #define IPMAC_INTERFACE 0x0020 |
| #define IPMAC_LOGTAG 0x0040 |
| #define IPMAC_NATTAG 0x0080 |
| #define IPMAC_PROTOCOL 0x0100 |
| #define IPMAC_RESULT 0x0200 |
| #define IPMAC_RULE 0x0400 |
| #define IPMAC_SRCIP 0x0800 |
| #define IPMAC_SRCPORT 0x1000 |
| #define IPMAC_TYPE 0x2000 |
| #define IPMAC_WITH 0x4000 |
| |
| #define IPMR_BLOCK 1 |
| #define IPMR_PASS 2 |
| #define IPMR_NOMATCH 3 |
| #define IPMR_LOG 4 |
| |
| #define IPMDO_SAVERAW 0x0001 |
| |
| #define OPT_SYSLOG 0x001 |
| #define OPT_RESOLVE 0x002 |
| #define OPT_HEXBODY 0x004 |
| #define OPT_HEXHDR 0x010 |
| #define OPT_VERBOSE 0x040 |
| #define OPT_TAIL 0x020 |
| #define OPT_NAT 0x080 |
| #define OPT_STATE 0x100 |
| #define OPT_FILTER 0x200 |
| #define OPT_PORTNUM 0x400 |
| #define OPT_LOGALL (OPT_NAT|OPT_STATE|OPT_FILTER) |
| #define OPT_LOGBODY 0x800 |
| |
| #define HOSTNAME_V4(a,b) hostname((a), 4, (u_32_t *)&(b)) |
| |
| #ifndef LOGFAC |
| #define LOGFAC LOG_LOCAL0 |
| #endif |
| |
| extern int load_config __P((char *)); |
| extern void dumphex __P((FILE *, int, char *, int)); |
| extern int check_action __P((char *, char *, int, int)); |
| extern char *getword __P((int)); |
| extern int fac_findname __P((char *)); |