--- /dev/null
+# Given a HTTP GET pcap with single sided traffic, missing the first syn, syn/ack, and suricata 4.0.4 from PPA
+
+# This rule fires all the time
+alert http any any -> any any (msg: "ALERT http to_server"; flow:to_server; content: "GET /i/94/"; sid:1; rev:1;)
+
+# This one only fires with async-oneside set to *false*
+alert http any any -> any any (msg: "ALERT http established and to_server"; flow:to_server,established; content: "GET /i/94/"; sid: 2; rev:1;)
\ No newline at end of file
--- /dev/null
+requires:
+ features:
+ - HAVE_LIBJANSSON
+args:
+- --set stream.async-oneside=true
+
+checks:
+ - filter:
+ count: 2
+ match:
+ event_type: alert
+ - filter:
+ count: 1
+ match:
+ event_type: alert
+ alert.signature_id: 1
+ - filter:
+ count: 1
+ match:
+ event_type: alert
+ alert.signature_id: 2
+
+
--- /dev/null
+# Given a HTTP GET pcap with single sided traffic, missing the first syn, syn/ack, and suricata 4.0.4 from PPA
+
+# This rule fires all the time
+alert http any any -> any any (msg: "ALERT http to_server"; flow:to_server; content: "GET /i/94/"; sid:1; rev:1;)
+
+# This one only fires with async-oneside set to *false*
+alert http any any -> any any (msg: "ALERT http established and to_server"; flow:to_server,established; content: "GET /i/94/"; sid: 2; rev:1;)
\ No newline at end of file
--- /dev/null
+requires:
+ features:
+ - HAVE_LIBJANSSON
+args:
+- --set stream.async-oneside=true
+- --set stream.midstream=true
+
+checks:
+ - filter:
+ count: 2
+ match:
+ event_type: alert
+ - filter:
+ count: 1
+ match:
+ event_type: alert
+ alert.signature_id: 1
+ - filter:
+ count: 1
+ match:
+ event_type: alert
+ alert.signature_id: 2
+
+