]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #489 in SNORT/snort3 from ~MIALTIZE/snort3:snort2lua to master
authorRuss Combs (rucombs) <rucombs@cisco.com>
Tue, 24 May 2016 18:58:41 +0000 (14:58 -0400)
committerRuss Combs (rucombs) <rucombs@cisco.com>
Tue, 24 May 2016 18:58:41 +0000 (14:58 -0400)
Squashed commit of the following:

commit 5c2f5c73a956b4da8513e32bfb72dbdafdedd56e
Author: Michael Altizer <mialtize@cisco.com>
Date:   Tue May 24 18:42:42 2016 +0000

    snort2lua: Allow for case-insensitive preprocessor keyword matching

tools/snort2lua/helpers/s2l_util.cc
tools/snort2lua/helpers/s2l_util.h
tools/snort2lua/keyword_states/kws_preprocessor.cc

index dc263faa9ec07160ddc658dbe6029497035b56a9..838fa33f3c4c370811599e14ed81a7169b8b42a7 100644 (file)
@@ -51,22 +51,44 @@ std::vector<std::string>& split(const std::string& s,
 
 const ConvertMap* find_map(
     const std::vector<const ConvertMap*>& map,
-    const std::string& keyword)
+    const std::string& keyword,
+    bool strict_case)
 {
     for (const ConvertMap* p : map)
-        if (p->keyword.compare(0, p->keyword.size(), keyword) == 0)
-            return p;
+    {
+        if (strict_case)
+        {
+            if (p->keyword.compare(0, p->keyword.size(), keyword) == 0)
+                return p;
+        }
+        else
+        {
+            if (case_compare(p->keyword, keyword))
+                return p;
+        }
+    }
 
     return nullptr;
 }
 
 const std::unique_ptr<const ConvertMap>& find_map(
     const std::vector<std::unique_ptr<const ConvertMap> >& map,
-    const std::string& keyword)
+    const std::string& keyword,
+    bool strict_case)
 {
     for (auto& p : map)
-        if (p->keyword.compare(0, p->keyword.size(), keyword) == 0)
-            return p;
+    {
+        if (strict_case)
+        {
+            if (p->keyword.compare(0, p->keyword.size(), keyword) == 0)
+                return p;
+        }
+        else
+        {
+            if (case_compare(p->keyword, keyword))
+                return p;
+        }
+    }
 
     static std::unique_ptr<const ConvertMap> np(nullptr);
     return np;
index 0e8ed20c0bb4b38803546c808a8610ebec2e9eef..242e91959375864584ced7501b762ca6f7363920 100644 (file)
@@ -39,9 +39,9 @@ std::vector<std::string>& split(const std::string& s, char delim, std::vector<st
 // Search through the vector for the map which matches keyword
 
 Table* find_table(const std::vector<Table*>& vec, const std::string& name);
-const ConvertMap* find_map(const std::vector<const ConvertMap*>&, const std::string& keyword);
+const ConvertMap* find_map(const std::vector<const ConvertMap*>&, const std::string& keyword, bool strict_case = true);
 const std::unique_ptr<const ConvertMap>& find_map(
-    const std::vector<std::unique_ptr<const ConvertMap> >&, const std::string& keyword);
+    const std::vector<std::unique_ptr<const ConvertMap> >&, const std::string& keyword, bool strict_case = true);
 
 // trim from begining
 std::string& ltrim(std::string& s);
index 9abb75f25a9dc4ceea1f0cef20197d210ad7b7f3..262efa1623381e61ac1e08f5dfaeb09edd9d8313 100644 (file)
@@ -44,7 +44,7 @@ bool Preprocessor::convert(std::istringstream& data_stream)
 
     if (util::get_string(data_stream, keyword, ":"))
     {
-        const ConvertMap* map = util::find_map(preprocessors::preprocessor_api, keyword);
+        const ConvertMap* map = util::find_map(preprocessors::preprocessor_api, keyword, false);
         if (map)
         {
             cv.set_state(map->ctor(cv));