]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #1015 in SNORT/snort3 from log_id_offset to master
authorMichael Altizer (mialtize) <mialtize@cisco.com>
Mon, 18 Sep 2017 14:49:44 +0000 (10:49 -0400)
committerMichael Altizer (mialtize) <mialtize@cisco.com>
Mon, 18 Sep 2017 14:49:44 +0000 (10:49 -0400)
Squashed commit of the following:

commit c2acd9a9e3389c7ef48ac593ffebfc8b4d4b530e
Author: Michael Altizer <mialtize@cisco.com>
Date:   Fri Sep 15 12:27:05 2017 -0400

    thread: Add logging directory ID offset controlled by --id-offset option

src/main/snort_config.cc
src/main/snort_config.h
src/main/snort_module.cc
src/main/thread.cc

index 7fb44042290d53f2c11060186644acf993cb5a3f..29609ba4124d48c57d75bf78061fd1f9e10b6f8a 100644 (file)
@@ -337,6 +337,7 @@ void SnortConfig::merge(SnortConfig* cmd_line)
         log_dir = DEFAULT_LOG_DIR;
 
     run_prefix = cmd_line->run_prefix;
+    id_offset = cmd_line->id_offset;
     id_subdir = cmd_line->id_subdir;
     id_zero = cmd_line->id_zero;
 
index 75424a9edc202af82ea9956de9d78d13ccc4b2c7..5dd05a874439e85b1be3c5008f1956208450f0dd 100644 (file)
@@ -274,6 +274,7 @@ public:
     //------------------------------------------------------
     // FIXIT-L non-module stuff - separate config from derived state?
     std::string run_prefix;
+    uint16_t id_offset = 0;
     bool id_subdir = false;
     bool id_zero = false;
 
index 5ecb472801fc667db18b288a3b93ed1730e80faa..b2150a5abee722024fab0ece137a3fc2677101fe 100644 (file)
@@ -331,6 +331,9 @@ static const Parameter s_params[] =
     { "--help-signals", Parameter::PT_IMPLIED, nullptr, nullptr,
       "dump available control signals" },
 
+    { "--id-offset", Parameter::PT_INT, "0:65535", "0",
+      "offset to add to instance IDs when logging to files" },
+
     { "--id-subdir", Parameter::PT_IMPLIED, nullptr, nullptr,
       "create/use instance subdirectories in logdir instead of instance filename prefix" },
 
@@ -769,6 +772,9 @@ bool SnortModule::set(const char*, Value& v, SnortConfig* sc)
     else if ( v.is("--help-signals") )
         help_signals(sc, v.get_string());
 
+    else if ( v.is("--id-offset") )
+        sc->id_offset = v.get_long();
+
     else if ( v.is("--id-subdir") )
         sc->id_subdir = true;
 
index 4c3d6a6a3b8d668829755ed79d247f9a998ec3ca..75e69495ef9ce707c6ef31db4c6b947f5d75e010 100644 (file)
@@ -103,7 +103,7 @@ const char* get_instance_file(std::string& file, const char* name)
     if ( (ThreadConfig::get_instance_max() > 1) || snort_conf->id_zero )
     {
         char id[8];
-        snprintf(id, sizeof(id), "%u", get_instance_id());
+        snprintf(id, sizeof(id), "%u", get_instance_id() + snort_conf->id_offset);
         file += id;
         sep = true;
     }