]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #3197: daq: sort --daq-list output by module name
authorRuss Combs (rucombs) <rucombs@cisco.com>
Wed, 8 Dec 2021 15:31:35 +0000 (15:31 +0000)
committerRuss Combs (rucombs) <rucombs@cisco.com>
Wed, 8 Dec 2021 15:31:35 +0000 (15:31 +0000)
Merge in SNORT/snort3 from ~RUCOMBS/snort3:daq_list to master

Squashed commit of the following:

commit 713ac22525d91453869509423f5ae08fcea7d61d
Author: russ <rucombs@cisco.com>
Date:   Fri Nov 26 09:15:32 2021 -0500

    daq: sort --daq-list output by module name

src/packet_io/sfdaq.cc

index 8a23f2a1ac950f6de3eb533b93d5e49dff99380c..fe61e4b89f4d2f1a6b086b54707bfd177edbd450 100644 (file)
@@ -27,6 +27,9 @@
 
 #include <daq.h>
 
+#include <algorithm>
+#include <vector>
+
 #include "log/messages.h"
 #include "main/snort_config.h"
 
@@ -83,14 +86,26 @@ void SFDAQ::unload()
 
 void SFDAQ::print_types(ostream& ostr)
 {
-    DAQ_Module_h module = daq_modules_first();
+    DAQ_Module_h mod = daq_modules_first();
 
-    if (module)
+    if (mod)
         ostr << "Available DAQ modules:" << endl;
     else
         ostr << "No available DAQ modules (try adding directories with --daq-dir)." << endl;
 
-    while (module)
+    std::vector<DAQ_Module_h> modules;
+
+    while (mod)
+    {
+        modules.push_back(mod);
+        mod = daq_modules_next();
+    }
+
+    std::sort(modules.begin(), modules.end(),
+        [](DAQ_Module_h a, DAQ_Module_h b)
+        { return strcmp(daq_module_get_name(a), daq_module_get_name(b)) < 0; });
+
+    for ( auto module : modules )
     {
         ostr << daq_module_get_name(module) << "(v" << daq_module_get_version(module) << "):";
 
@@ -131,8 +146,6 @@ void SFDAQ::print_types(ostream& ostr)
                 ostr << "- " << var_desc_table[i].description << endl;
             }
         }
-
-        module = daq_modules_next();
     }
 }