From: Eric Leblond Date: Fri, 10 May 2013 08:22:24 +0000 (+0200) Subject: SetBPfString is part of command line parsing X-Git-Tag: suricata-2.0beta2~443 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bb19ce1847bd0c0e259506013d986c182ac8eab9;p=thirdparty%2Fsuricata.git SetBPfString is part of command line parsing --- diff --git a/src/suricata.c b/src/suricata.c index 731ba2eefb..89fbdd1558 100644 --- a/src/suricata.c +++ b/src/suricata.c @@ -342,7 +342,7 @@ void EngineDone(void) { suricata_ctl_flags |= SURICATA_DONE; } -static void SetBpfString(int optind, char *argv[]) { +static int SetBpfString(int optind, char *argv[]) { char *bpf_filter = NULL; uint32_t bpf_len = 0; int tmpindex = 0; @@ -355,18 +355,18 @@ static void SetBpfString(int optind, char *argv[]) { } if (bpf_len == 0) - return; + return TM_ECODE_OK; if (IS_ENGINE_MODE_IPS(engine_mode)) { SCLogError(SC_ERR_NOT_SUPPORTED, "BPF filter not available in IPS mode." " Use firewall filtering if possible."); - exit(EXIT_FAILURE); + return TM_ECODE_FAILED; } bpf_filter = SCMalloc(bpf_len); if (unlikely(bpf_filter == NULL)) - return; + return TM_ECODE_OK; memset(bpf_filter, 0x00, bpf_len); tmpindex = optind; @@ -381,11 +381,14 @@ static void SetBpfString(int optind, char *argv[]) { if(strlen(bpf_filter) > 0) { if (ConfSet("bpf-filter", bpf_filter, 0) != 1) { SCLogError(SC_ERR_FATAL, "Failed to set bpf filter."); - exit(EXIT_FAILURE); + return TM_ECODE_FAILED; } } SCFree(bpf_filter); + + return TM_ECODE_OK; } + static void SetBpfStringFromFile(char *filename) { char *bpf_filter = NULL; char *bpf_comment_tmp = NULL; @@ -950,6 +953,7 @@ static TmEcode SuriParseCommandLine(int argc, char** argv, struct SuriInstance * int build_info = 0; int conf_test = 0; int engine_analysis = 0; + int ret = TM_ECODE_OK; #ifdef UNITTESTS coverage_unittests = 0; @@ -1467,6 +1471,10 @@ static TmEcode SuriParseCommandLine(int argc, char** argv, struct SuriInstance * if (engine_analysis) suri->run_mode = RUNMODE_ENGINE_ANALYSIS; + ret = SetBpfString(optind, argv); + if (ret != TM_ECODE_OK) + return ret; + return TM_ECODE_OK; } @@ -1620,7 +1628,10 @@ int main(int argc, char **argv) SuriPrintVersion(); - SetBpfString(optind, argv); +#ifndef HAVE_HTP_TX_GET_RESPONSE_HEADERS_RAW + SCLogWarning(SC_WARN_OUTDATED_LIBHTP, "libhtp < 0.2.7 detected. Keyword " + "http_raw_header will not be able to inspect response headers."); +#endif UtilCpuPrintSummary();