Merge in SNORT/snort3 from ~VSHPYRKA/snort3:snort_pid_file_mgmt to master
Squashed commit of the following:
commit
1ca28acfc46ed38d28f702cfada9e6450b0dc159
Author: Volodymyr Shpyrka <vshpyrka@cisco.com>
Date: Fri Jan 24 06:44:09 2025 -0500
main: snort --create-pidfile cmd line parameter update and support for --max-peers commaand line parameter implemented
{
SnortConfig* sc = SnortConfig::get_main_conf();
- sc->pid_filename = sc->log_dir;
- sc->pid_filename += "/snort.pid";
+ sc->pid_filename = sc->log_dir + '/' + sc->pid_filename;
std::string pid_lockfilename;
run_flags &= ~RUN_FLAG__CREATE_PID_FILE;
}
+void SnortConfig::set_pid_filename(const char* name)
+{
+ if (name && name[0] != '\0')
+ pid_filename = name;
+ else
+ pid_filename = DEFAULT_PID_FILENAME;
+}
+
+void SnortConfig::set_max_procs(uint8_t n)
+{
+ max_procs = n;
+}
+
void SnortConfig::set_daemon(bool enabled)
{
if (enabled)
#include "utils/bits.h"
#define DEFAULT_LOG_DIR "."
+#define DEFAULT_PID_FILENAME "snort.pid"
enum RunFlag
{
bool stdin_rules = false;
std::string pid_filename;
+ uint8_t max_procs = 1;
std::string orig_log_dir; /* set in case of chroot */
int thiszone = 0;
void set_alert_mode(const char*);
void set_chroot_dir(const char*);
void set_create_pid_file(bool);
+ void set_pid_filename(const char*);
+ void set_max_procs(uint8_t);
void set_daemon(bool);
void set_decode_data_link(bool);
void set_dirty_pig(bool);
"<file> to create unix socket" },
#endif
- { "--create-pidfile", Parameter::PT_IMPLIED, nullptr, nullptr,
+ { "--create-pidfile", Parameter::PT_STRING, "(optional)", nullptr,
"create PID file, even when not in Daemon mode" },
+ { "--max-procs", Parameter::PT_INT, "1:", nullptr,
+ "number of simultaneous Snort processes" },
+
{ "--daq", Parameter::PT_STRING, nullptr, nullptr,
"<type> select packet acquisition module (default is pcap)" },
#endif
else if ( is(v, "--create-pidfile") )
+ {
sc->set_create_pid_file(true);
+ sc->set_pid_filename(v.get_string());
+ }
+
+ else if ( is(v, "--max-procs") )
+ sc->set_max_procs(v.get_uint8());
else if ( is(v, "--daq") )
module_config = sc->daq_config->add_module_config(v.get_string());
sc->tweaks = cmd_line_conf->tweaks;
sc->dump_config_type = cmd_line_conf->dump_config_type;
sc->dump_config_file = cmd_line_conf->dump_config_file;
+ sc->pid_filename = cmd_line_conf->pid_filename;
+ sc->max_procs = cmd_line_conf->max_procs;
if ( !fname )
fname = get_snort_conf();