#include <BPF_Program.h>
Collaboration diagram for BPF_Program:

Public Member Functions | |
| BPF_Program () | |
| ~BPF_Program () | |
| bool | Compile (pcap_t *pcap, const char *filter, uint32 netmask, char *errbuf=0, unsigned int errbuf_len=0, bool optimize=true) |
| bool | Compile (int snaplen, int linktype, const char *filter, uint32 netmask, char *errbuf=0, bool optimize=true) |
| bool | IsCompiled () |
| bpf_program * | GetProgram () |
Protected Member Functions | |
| void | FreeCode () |
Protected Attributes | |
| bool | m_compiled |
| bpf_program | m_program |
|
|
Definition at line 80 of file BPF_Program.cc. References m_compiled.
00081 {
00082 m_compiled = false;
00083 }
|
|
|
Definition at line 85 of file BPF_Program.cc. References FreeCode().
00086 {
00087 FreeCode();
00088 }
|
|
||||||||||||||||||||||||||||
|
Definition at line 113 of file BPF_Program.cc. References error(), FreeCode(), m_compiled, m_program, optimize, pcap_compile_nopcap(), PCAP_ERRBUF_SIZE, safe_strncpy(), snaplen, and uint32.
00115 {
00116 FreeCode();
00117
00118 #ifdef LIBPCAP_PCAP_COMPILE_NOPCAP_HAS_ERROR_PARAMETER
00119 char my_error[PCAP_ERRBUF_SIZE];
00120
00121 int err = pcap_compile_nopcap(snaplen, linktype, &m_program,
00122 (char *) filter, optimize, netmask, error);
00123 if ( err < 0 && errbuf )
00124 safe_strncpy(errbuf, my_errbuf, PCAP_ERRBUF_SIZE);
00125 #else
00126 int err = pcap_compile_nopcap(snaplen, linktype, &m_program,
00127 (char*) filter, optimize, netmask);
00128 #endif
00129 if ( err == 0 )
00130 m_compiled = true;
00131
00132 return err == 0;
00133 }
|
|
||||||||||||||||||||||||||||
|
Definition at line 90 of file BPF_Program.cc. References FreeCode(), m_compiled, m_program, optimize, pcap_compile(), pcap_geterr(), pcap_t, safe_snprintf(), and uint32. Referenced by PktSrc::AddSecondaryTablePrograms(), and PktSrc::PrecompileFilter().
00092 {
00093 if ( ! pcap )
00094 return false;
00095
00096 FreeCode();
00097
00098 if ( pcap_compile(pcap, &m_program, (char *) filter, optimize, netmask) < 0 )
00099 {
00100 if ( errbuf )
00101 safe_snprintf(errbuf, errbuf_len,
00102 "pcap_compile(%s): %s", filter,
00103 pcap_geterr(pcap));
00104
00105 return false;
00106 }
00107
00108 m_compiled = true;
00109
00110 return true;
00111 }
|
|
|
Definition at line 140 of file BPF_Program.cc. References m_compiled, m_program, and pcap_freecode(). Referenced by Compile(), and ~BPF_Program().
00141 {
00142 if ( m_compiled )
00143 {
00144 #ifdef DONT_HAVE_LIBPCAP_PCAP_FREECODE
00145 pcap_freecode(NULL, &m_program);
00146 #else
00147 pcap_freecode(&m_program);
00148 #endif
00149 m_compiled = false;
00150 }
00151 }
|
|
|
Definition at line 135 of file BPF_Program.cc. References m_compiled, and m_program. Referenced by net_packet_match(), and PktSrc::SetFilter().
00136 {
00137 return m_compiled ? &m_program : 0;
00138 }
|
|
|
Definition at line 56 of file BPF_Program.h. References m_compiled.
00056 { return m_compiled; }
|
|
|
Definition at line 67 of file BPF_Program.h. Referenced by BPF_Program(), Compile(), FreeCode(), GetProgram(), and IsCompiled(). |
|
|
Definition at line 68 of file BPF_Program.h. Referenced by Compile(), FreeCode(), and GetProgram(). |
1.3.5