#include "source-af-packet.h"
#include "util-bpf.h"
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
const char *RunModeAFPGetDefaultMode(void)
{
#include "suricata.h"
#include "util-bpf.h"
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
const char *RunModeNetmapGetDefaultMode(void)
{
UtListTests(regex_arg);
} else {
/* global packet pool */
- extern intmax_t max_pending_packets;
+ extern uint16_t max_pending_packets;
max_pending_packets = 128;
PacketPoolInit();
#endif /* HAVE_AF_PACKET */
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
#ifndef HAVE_AF_PACKET
/* Number of bytes per loop to process before fetching more data. */
#define BYTES_PER_LOOP (4 * 1024 * 1024) /* 4 MB */
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
typedef struct ErfDagThreadVars_ {
ThreadVars *tv;
#include "action-globals.h"
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
/**
* \brief Structure to hold thread specific variables.
#include <numa.h>
#include <nt.h>
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
typedef struct NapatechThreadVars_
{
#else /* we do have NFQ support */
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
#define MAX_ALREADY_TREATED 5
#define NFQ_VERDICT_RETRY_COUNT 3
#include "source-pcap-file.h"
#include "util-exception-policy.h"
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
extern PcapFileGlobalVars pcap_g;
static void PcapFileCallbackLoop(char *user, struct pcap_pkthdr *h, u_char *pkt);
#include "runmode-unix-socket.h"
#include "suricata.h"
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
PcapFileGlobalVars pcap_g;
/**
TmEcode DecodePfring(ThreadVars *, Packet *, void *);
TmEcode DecodePfringThreadDeinit(ThreadVars *tv, void *data);
-extern intmax_t max_pending_packets;
+extern uint16_t max_pending_packets;
#ifndef HAVE_PFRING
uint8_t host_mode = SURI_HOST_IS_SNIFFER_ONLY;
/** Maximum packets to simultaneously process. */
-intmax_t max_pending_packets;
+uint16_t max_pending_packets;
/** global indicating if detection is enabled */
int g_detect_disabled = 0;
{
/* Pull the max pending packets from the config, if not found fall
* back on a sane default. */
- if (ConfGetInt("max-pending-packets", &max_pending_packets) != 1)
- max_pending_packets = DEFAULT_MAX_PENDING_PACKETS;
- if (max_pending_packets >= 65535) {
- SCLogError("Maximum max-pending-packets setting is 65534. "
+ intmax_t tmp_max_pending_packets;
+ if (ConfGetInt("max-pending-packets", &tmp_max_pending_packets) != 1)
+ tmp_max_pending_packets = DEFAULT_MAX_PENDING_PACKETS;
+ if (tmp_max_pending_packets < 1 || tmp_max_pending_packets >= UINT16_MAX) {
+ SCLogError("Maximum max-pending-packets setting is 65534 and must be greater than 0. "
"Please check %s for errors",
suri->conf_filename);
return TM_ECODE_FAILED;
+ } else {
+ max_pending_packets = (uint16_t)tmp_max_pending_packets;
}
- SCLogDebug("Max pending packets set to %"PRIiMAX, max_pending_packets);
+ SCLogDebug("Max pending packets set to %" PRIu16, max_pending_packets);
/* Pull the default packet size from the config, if not found fall
* back on a sane default. */
tmm_modules[TMM_DECODEPCAPFILE].ThreadInit(tv, NULL, (void **) &dtv);
(void)SC_ATOMIC_SET(tv->tm_slots->slot_next->slot_data, dtv);
- extern intmax_t max_pending_packets;
+ extern uint16_t max_pending_packets;
max_pending_packets = 128;
PacketPoolInit();
tmm_modules[TMM_FLOWWORKER].ThreadInit(&tv, NULL, &fwd);
StatsSetupPrivate(&tv);
- extern intmax_t max_pending_packets;
+ extern uint16_t max_pending_packets;
max_pending_packets = 128;
PacketPoolInit();
if (DetectEngineReload(&surifuzz) < 0) {
tmm_modules[TMM_FLOWWORKER].ThreadInit(&tv, NULL, &fwd);
StatsSetupPrivate(&tv);
- extern intmax_t max_pending_packets;
+ extern uint16_t max_pending_packets;
max_pending_packets = 128;
PacketPoolInit();
initialized = 1;
tmm_modules[TMM_FLOWWORKER].ThreadInit(&tv, NULL, &fwd);
StatsSetupPrivate(&tv);
- extern intmax_t max_pending_packets;
+ extern uint16_t max_pending_packets;
max_pending_packets = 128;
PacketPoolInit();
initialized = 1;
void PacketPoolInit(void)
{
- extern intmax_t max_pending_packets;
+ extern uint16_t max_pending_packets;
PktPool *my_pool = GetThreadPacketPool();
*/
void PacketPoolPostRunmodes(void)
{
- extern intmax_t max_pending_packets;
- intmax_t pending_packets = max_pending_packets;
+ extern uint16_t max_pending_packets;
+ uint16_t pending_packets = max_pending_packets;
if (pending_packets < RESERVED_PACKETS) {
FatalError("'max-pending-packets' setting "
"must be at least %d",