]> git.ipfire.org Git - thirdparty/suricata-verify.git/commitdiff
createst: add arg for setting midstream true
authorJuliana Fajardini <jufajardini@gmail.com>
Thu, 24 Feb 2022 19:31:44 +0000 (19:31 +0000)
committerJason Ish <jason.ish@oisf.net>
Fri, 28 Oct 2022 21:58:29 +0000 (15:58 -0600)
With this, one can pass '--midstream' and this will add that as a test
argument and write it to test.yaml. Default is still midstream false.

README.md
createst.py

index 25933051b5a6143311326ad0d5f25d48640885e1..6732c8158320a8736ed307337ff8357e3db9ec18 100644 (file)
--- a/README.md
+++ b/README.md
@@ -159,6 +159,7 @@ This needs to be run from a valid Suricata source directory.
 usage: createst.py [-h] [--output-path <output-path>] [--eventtype-only]
                    [--allow-events [ALLOW_EVENTS]] [--rules <rules-file>]
                    [--strictcsums] [--min-version <min-version>]
+                   [--midstream]
                    <test-name> <pcap-file>
 
 Create tests with a given PCAP. Execute the script from a valid Suricata source
@@ -186,6 +187,7 @@ optional arguments:
   --strictcsums         Strictly validate checksum
   --min-version <min-version>
                         Adds a global minimum required version
+  --midstream           Allow midstream session pickups
 ```
 
 ### Examples
index d7f84235e5fc897ce448076beff2b4bd7442dc82..bc484ac7f0d7d2e5719507dcd53abf870983cbdf 100755 (executable)
@@ -141,14 +141,21 @@ def write_to_file(data):
         sys.exit(1)
     with open(test_yaml_path, "w+") as fp:
         fp.write("# *** Add configuration here ***\n\n")
-        if not args["strictcsums"]:
-            fp.write("args:\n- -k none\n\n")
         if check_requires():
             fp.write("requires:\n")
         if args["min_version"]:
             fp.write("   min-version: %s\n\n" % args["min_version"])
         if args["add_version"]:
             fp.write("   version: %s\n\n" % args["add_version"])
+        suricata_args = []
+        if not args["strictcsums"]:
+            suricata_args.append("-k none")
+        if args["midstream"]:
+            suricata_args.append("--set stream.midstream=true")
+        if suricata_args:
+            fp.write("args:\n")
+            fp.write("\n".join(["- {}".format(a) for a in suricata_args]))
+            fp.write("\n\n")
         fp.write(data)
 
 def check_requires():
@@ -357,6 +364,8 @@ def parse_args():
                         help="Create filter blocks for the specified events")
     parser.add_argument("--strictcsums", default=None, action="store_true",
                         help="Strictly validate checksum")
+    parser.add_argument("--midstream", default=False, action="store_true",
+                        help="Allow midstream session pickups")
     parser.add_argument("--min-version", default=None, metavar="<min-version>",
                         help="Adds a global minimum required version")
     parser.add_argument("--add-version", default=None, metavar="<add-version>",
@@ -404,6 +413,8 @@ def generate_eve():
 
     if not args["strictcsums"]:
         largs += ["-k", "none"]
+    if args["midstream"]:
+        largs += ["--set", "stream.midstream=true"]
     p = subprocess.Popen(
         largs, cwd=cwd, env=env,
         stdout=subprocess.PIPE, stderr=subprocess.PIPE)