/* *---------------------------------------------------------------------------- * Copyright (c) 2001, 2002, C.S. Peron * All rights reserved. *---------------------------------------------------------------------------- * * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the distribution. * * * Neither the name of the ipex developers nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * *---------------------------------------------------------------------------- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *---------------------------------------------------------------------------- */ #if (!defined(IPEX_H_)) #define IPEX_H_ #if defined(linux) && !_BSD_SOURCE #define _BSD_SOURCE #endif #include #include #include #include #include struct offset { u_long base; /* offset in buffer where match starts */ u_long len; /* length of match after base */ }; struct dump_info { char *WFileName; pcap_t *pd; pcap_dumper_t *p; }; struct ehdr { char smac[20]; char dmac[20]; }; struct cmdopts { int cflag; /* process cflag packets then exit */ int dflag; /* dump bpf program XXX hide in verbose? */ char *eflag; /* date/time expression compiler */ char *fflag; /* read pcap expression from this file */ char *iflag; /* process packets from this interface */ int nflag; /* do not lookup DNS entries */ int pflag; /* do not resolve service names */ int qflag; /* promiscuous mode */ char *rflag; /* read pcap data in from this file */ int tflag; /* timeout for TCP state logging in seconds */ int uflag; /* setuid in case we get owned. */ char *wflag; /* write packets to this file */ int xflag; /* provide full frame hex dumps */ char *Bflag; /* binary signature */ int Cflag; /* dump'n'trunc pcap trace file: REQ -w */ int Dflag; /* unconditional hex dump? XXX revisit */ char *Eflag; /* extended regular expression */ int Hflag; /* dump headers only XXX revisit */ int Lflag; /* dump hardware addresses */ int Oflag; /* run pcap code generation optimizer */ char *Pflag; /* proc kvm code XXX broken */ int Rflag; /* XXX realtime operation */ int Tflag; /* tcp session tracking */ int Xflag; /* dump hex addresses? XXX deprecate me */ /* XXX save me from becoming a gross hack */ int loffset; /* link offset */ int thiszone; /* timezone offset */ int op; int arg; char *pcap_logic; }; struct cmdopts opts; struct datespec *dsp; typedef unsigned int u_32_t; #if (!defined(MAXHOSTNAMELEN)) #define MAXHOSTNAMELEN 256 #endif /* MAXHOSTNAMELEN */ /* * default snapshot length. keep the amount of unwanted data down. * This still allows for all the neccessary headers. */ #define DEFAULT_SNAPLEN 68 #define ETHHDR_SIZE 14 #define PPPHDR_SIZE 4 #define SLIPHDR_SIZE 16 #define RAWHDR_SIZE 0 #define LOOPHDR_SIZE 4 #define FDDIHDR_SIZE 21 #ifndef IP_OFFMASK #define IP_OFFMASK 0x1fff #if (defined(HAVE_NET_IF_PFLOG_H)) #define PFLOG_HDRLEN sizeof(struct pfloghdr) #endif #endif #ifndef LOG_SECURITY #define LOG_SECURITY LOG_AUTHPRIV #endif #endif /* IPEX_H_ */