for pattern, need_val in skip["config"].items():
for key, val in self.suricata_config.config.items():
if re.match(pattern, key):
- if need_val != val:
+ if str(need_val) == str(val):
raise UnsatisfiedRequirementError(
- "requires %s = %s" % (
+ "not for %s = %s" % (
key, need_val))
def check_requires(self):
raise UnsatisfiedRequirementError(
"requires script returned false")
+ elif key == "config":
+ for pattern, need_val in requires["config"].items():
+ found = False
+ for key, val in self.suricata_config.config.items():
+ if re.match(pattern, key):
+ print("%s -> %s" % (pattern, key))
+ if str(need_val) != str(val):
+ raise UnsatisfiedRequirementError(
+ "requires %s = %s" % (
+ key, need_val))
+ print(found)
+ if not found:
+ raise UnsatisfiedRequirementError(
+ "requires %s = %s" % (pattern, need_val))
+
elif key == "pcap":
# Handle below...
pass
--- /dev/null
+requires:
+ features:
+ - HAVE_LIBJANSSON
+ min-version: 4.1.0
+ script:
+ - grep OutputAnswerV2 src/output-json-dns.c > /dev/null 2>&1
+
+checks:
+
+ - filter:
+ comment: request
+ count: 1
+ match:
+ event_type: dns
+ dns.type: query
+ dns.rrname: www.suricata-ids.org
+
+ - filter:
+ comment: response
+ count: 1
+ match:
+ event_type: dns
+ dns.type: answer
+ dns.answers[0].rrtype: CNAME
+ dns.answers[1].rrtype: A
+ dns.answers[2].rrtype: A