|
|
|
|
@ -1148,11 +1148,7 @@ static int ParseCommandLinePcapLive(SCInstance *suri, const char *optarg)
|
|
|
|
|
{
|
|
|
|
|
memset(suri->pcap_dev, 0, sizeof(suri->pcap_dev));
|
|
|
|
|
|
|
|
|
|
if (optarg == NULL) {
|
|
|
|
|
SCLogError(SC_ERR_INITIALIZATION, "no option argument (optarg) for -i");
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (optarg != NULL) {
|
|
|
|
|
/* warn user if af-packet, netmap or pf-ring are available */
|
|
|
|
|
#if defined HAVE_AF_PACKET || HAVE_PFRING || HAVE_NETMAP
|
|
|
|
|
int i = 0;
|
|
|
|
|
@ -1206,6 +1202,7 @@ static int ParseCommandLinePcapLive(SCInstance *suri, const char *optarg)
|
|
|
|
|
SCLogError(SC_ERR_PCAP_TRANSLATE, "failed to find a pcap device for IP %s", optarg);
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (suri->run_mode == RUNMODE_UNKNOWN) {
|
|
|
|
|
suri->run_mode = RUNMODE_PCAP_DEV;
|
|
|
|
|
@ -1420,29 +1417,7 @@ static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri)
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
#endif /* HAVE_NFLOG */
|
|
|
|
|
} else if (strcmp((long_opts[option_index]).name , "pcap") == 0) {
|
|
|
|
|
if (suri->run_mode == RUNMODE_UNKNOWN) {
|
|
|
|
|
suri->run_mode = RUNMODE_PCAP_DEV;
|
|
|
|
|
if (optarg) {
|
|
|
|
|
LiveRegisterDevice(optarg);
|
|
|
|
|
memset(suri->pcap_dev, 0, sizeof(suri->pcap_dev));
|
|
|
|
|
strlcpy(suri->pcap_dev, optarg,
|
|
|
|
|
((strlen(optarg) < sizeof(suri->pcap_dev)) ?
|
|
|
|
|
(strlen(optarg) + 1) : sizeof(suri->pcap_dev)));
|
|
|
|
|
}
|
|
|
|
|
} else if (suri->run_mode == RUNMODE_PCAP_DEV) {
|
|
|
|
|
#ifdef OS_WIN32
|
|
|
|
|
SCLogError(SC_ERR_PCAP_MULTI_DEV_NO_SUPPORT, "pcap multi dev "
|
|
|
|
|
"support is not (yet) supported on Windows.");
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
#else
|
|
|
|
|
SCLogWarning(SC_WARN_PCAP_MULTI_DEV_EXPERIMENTAL, "using "
|
|
|
|
|
"multiple pcap devices to get packets is experimental.");
|
|
|
|
|
LiveRegisterDevice(optarg);
|
|
|
|
|
#endif
|
|
|
|
|
} else {
|
|
|
|
|
SCLogError(SC_ERR_MULTIPLE_RUN_MODE, "more than one run mode "
|
|
|
|
|
"has been specified");
|
|
|
|
|
usage(argv[0]);
|
|
|
|
|
if (ParseCommandLinePcapLive(suri, optarg) != TM_ECODE_OK) {
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
}
|
|
|
|
|
#ifdef AFLFUZZ_APPLAYER
|
|
|
|
|
|