${result} = Scan Message With Rspamc ${MESSAGE} --ip 127.0.0.1 --hostname rspamd.com
Check Rspamc ${result} REDIS_HOSTNAME inverse=1
+MAP - REDIS - HOSTNAME - EXPANSION - HIT
+ Redis HSET 127.0.0.1.foo.com redistest.example.net ${EMPTY}
+ ${result} = Scan Message With Rspamc ${MESSAGE} --ip 127.0.0.1 --hostname redistest.example.net --rcpt bob@foo.com
+ Check Rspamc ${result} REDIS_HOSTNAME_EXPANSION
+
+MAP - REDIS - HOSTNAME - EXPANSION - MISS
+ ${result} = Scan Message With Rspamc ${MESSAGE} --ip 127.0.0.1 --hostname redistest.example.net --rcpt bob@bar.com
+ Check Rspamc ${result} REDIS_HOSTNAME_EXPANSION inverse=1
+
MAP - REDIS - IP
Redis HSET ipaddr 127.0.0.1 ${EMPTY}
${result} = Scan Message With Rspamc ${MESSAGE} --ip 127.0.0.1
FPROT HIT - PATTERN
Run Dummy Fprot ${PORT_FPROT} 1
+ Run Dummy Fprot ${PORT_FPROT_DUPLICATE} 1 /tmp/dummy_fprot_dupe.pid
${result} = Scan Message With Rspamc ${MESSAGE}
Check Rspamc ${result} FPROT_EICAR (1.00)[EICAR_Test_File]
Should Not Contain ${result.stdout} CLAMAV_VIRUS
+ # Also check ordered pattern match
+ Should Contain ${result.stdout} FPROT_VIRUS_DUPLICATE_PATTERN
+ Should Not Contain ${result.stdout} FPROT_VIRUS_DUPLICATE_DEFAULT
+ Should Not Contain ${result.stdout} FPROT_VIRUS_DUPLICATE_NOPE
FPROT CACHE HIT
${result} = Scan Message With Rspamc ${MESSAGE}
Check Rspamc ${result} FPROT_EICAR (1.00)[EICAR_Test_File]
Should Not Contain ${result.stdout} CLAMAV_VIRUS
+ # Also check ordered pattern match
+ Should Contain ${result.stdout} FPROT_VIRUS_DUPLICATE_PATTERN
+ Should Not Contain ${result.stdout} FPROT_VIRUS_DUPLICATE_DEFAULT
FPROT CACHE MISS
${result} = Scan Message With Rspamc ${MESSAGE2}
Wait Until Created /tmp/dummy_clamav.pid
Run Dummy Fprot
- [Arguments] ${port} ${found}=
- ${result} = Start Process ${TESTDIR}/util/dummy_fprot.py ${port} ${found}
- Wait Until Created /tmp/dummy_fprot.pid
+ [Arguments] ${port} ${found}= ${pid}=/tmp/dummy_fprot.pid
+ ${result} = Start Process ${TESTDIR}/util/dummy_fprot.py ${port} ${found} ${pid}
+ Wait Until Created ${pid}
FPROT_EICAR = "^EICAR_Test_File$";
}
}
+ fprot_duplicate {
+ prefix = "fp_dupe";
+ attachments_only = false;
+ symbol = "FPROT_VIRUS_DUPLICATE_DEFAULT";
+ type = "fprot";
+ servers = "127.0.0.1:${PORT_FPROT_DUPLICATE}";
+ patterns = [
+ {FPROT_VIRUS_DUPLICATE_PATTERN = "^E"},
+ {FPROT_VIRUS_DUPLICATE_NOPE1 = "^EI",
+ FPROT_VIRUS_DUPLICATE_NOPE2 = "^EIC",
+ FPROT_VIRUS_DUPLICATE_NOPE3 = "^EICA",
+ FPROT_VIRUS_DUPLICATE_NOPE4 = "^EICAR",
+ FPROT_VIRUS_DUPLICATE_NOPE5 = "^EICAR_"}
+ ];
+ }
}
}
redis {
servers = "${REDIS_ADDR}:${REDIS_PORT}";
+ expand_keys = true;
}
multimap {
DNSBL_MAP {
type = "hostname";
map = "redis://hostname";
}
+ REDIS_HOSTNAME_EXPANSION {
+ type = "hostname";
+ map = "redis://\${ip}.\${principal_recipient_domain}";
+ }
REDIS_IPADDR {
type = "ip";
map = "redis://ipaddr";
type = "received";
map = "redis://RCVD_TEST";
}
+ RCVD_AUTHED_ONE {
+ type = "received";
+ map = "${TESTDIR}/configs/maps/rcvd2.list";
+ flags = ["authenticated"];
+ nflags = ["ssl"];
+ }
+ RCVD_AUTHED_TWO {
+ type = "received";
+ map = "${TESTDIR}/configs/maps/rcvd2.list";
+ flags = ["authenticated", "ssl"];
+ }
}
PORT_PROXY = 56795
PORT_CLAM = 56796
PORT_FPROT = 56797
+PORT_FPROT_DUPLICATE = 56798
REDIS_ADDR = u'127.0.0.1'
REDIS_PORT = 56379
RSPAMD_GROUP = 'nogroup'
alen = len(sys.argv)
if alen > 1:
port = int(sys.argv[1])
- if alen >= 3:
+ if alen >= 4:
+ PID = sys.argv[3]
+ foundvirus = bool(sys.argv[2])
+ elif alen >= 3:
foundvirus = bool(sys.argv[2])
else:
foundvirus = False