diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2021-06-10 17:07:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-10 17:07:53 +0100 |
commit | 49584cd1a3e18c3d7fcc5a2fd261fc86efbcb802 (patch) | |
tree | 59f234f41144cc0c28876acce909850a1832d954 /test | |
parent | 083e54c8ad3250adb6c594c892b1e60f7bc01ed3 (diff) | |
parent | 37d7bee0fe739c3262e40036309573a41e6f4b0a (diff) | |
download | rspamd-49584cd1a3e18c3d7fcc5a2fd261fc86efbcb802.tar.gz rspamd-49584cd1a3e18c3d7fcc5a2fd261fc86efbcb802.zip |
Merge pull request #3772 from fatalbanana/external_relay
[Feature] external_relay plugin
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/cases/001_merged/__init__.robot | 13 | ||||
-rw-r--r-- | test/functional/cases/380_external_relay.robot | 41 | ||||
-rw-r--r-- | test/functional/configs/maps/external_relay.hostname_map | 3 | ||||
-rw-r--r-- | test/functional/configs/maps/external_relay.user_map | 2 | ||||
-rw-r--r-- | test/functional/configs/merged-local.conf | 22 | ||||
-rw-r--r-- | test/functional/configs/merged.conf | 3 | ||||
-rw-r--r-- | test/functional/lua/external_relay.lua | 10 | ||||
-rw-r--r-- | test/functional/messages/received5.eml | 13 | ||||
-rw-r--r-- | test/functional/messages/received6.eml | 17 |
9 files changed, 118 insertions, 6 deletions
diff --git a/test/functional/cases/001_merged/__init__.robot b/test/functional/cases/001_merged/__init__.robot index 07f877c46..7f2c7bb43 100644 --- a/test/functional/cases/001_merged/__init__.robot +++ b/test/functional/cases/001_merged/__init__.robot @@ -6,9 +6,10 @@ Resource ${RSPAMD_TESTDIR}/lib/rspamd.robot Variables ${RSPAMD_TESTDIR}/lib/vars.py *** Variables *** -${CONFIG} ${RSPAMD_TESTDIR}/configs/merged.conf -${REDIS_SCOPE} Suite -${RSPAMD_MAP_MAP} ${RSPAMD_TESTDIR}/configs/maps/map.list -${RSPAMD_RADIX_MAP} ${RSPAMD_TESTDIR}/configs/maps/ip2.list -${RSPAMD_REGEXP_MAP} ${RSPAMD_TESTDIR}/configs/maps/regexp.list -${RSPAMD_SCOPE} Suite +${CONFIG} ${RSPAMD_TESTDIR}/configs/merged.conf +${REDIS_SCOPE} Suite +${RSPAMD_EXTERNAL_RELAY_ENABLED} false +${RSPAMD_MAP_MAP} ${RSPAMD_TESTDIR}/configs/maps/map.list +${RSPAMD_RADIX_MAP} ${RSPAMD_TESTDIR}/configs/maps/ip2.list +${RSPAMD_REGEXP_MAP} ${RSPAMD_TESTDIR}/configs/maps/regexp.list +${RSPAMD_SCOPE} Suite diff --git a/test/functional/cases/380_external_relay.robot b/test/functional/cases/380_external_relay.robot new file mode 100644 index 000000000..ff301626e --- /dev/null +++ b/test/functional/cases/380_external_relay.robot @@ -0,0 +1,41 @@ +*** Settings *** +Suite Setup Rspamd Setup +Suite Teardown Rspamd Teardown +Library ${RSPAMD_TESTDIR}/lib/rspamd.py +Resource ${RSPAMD_TESTDIR}/lib/rspamd.robot +Variables ${RSPAMD_TESTDIR}/lib/vars.py + +*** Variables *** +${CONFIG} ${RSPAMD_TESTDIR}/configs/merged.conf +${RSPAMD_EXTERNAL_RELAY_ENABLED} true +${RSPAMD_SCOPE} Suite + +*** Test Cases *** +EXTERNAL RELAY AUTHENTICATED + Scan File ${RSPAMD_TESTDIR}/messages/received5.eml + ... Settings={symbols_enabled [EXTERNAL_RELAY_TEST, EXTERNAL_RELAY_AUTHENTICATED]} + ... IP=8.8.8.8 User=user@example.net + Expect Symbol With Exact Options EXTERNAL_RELAY_TEST + ... IP=192.0.2.1 HOSTNAME=mail.example.org HELO=mail.example.org + +EXTERNAL RELAY COUNT + Scan File ${RSPAMD_TESTDIR}/messages/received4.eml + ... Settings={symbols_enabled [EXTERNAL_RELAY_TEST, EXTERNAL_RELAY_COUNT]} + ... IP=8.8.8.8 + Expect Symbol With Exact Options EXTERNAL_RELAY_TEST + ... IP=151.18.193.131 HOSTNAME=ca-18-193-131.service.infuturo.it + ... HELO=ca-18-193-131.service.infuturo.it + +EXTERNAL RELAY HOSTNAME MAP + Scan File ${RSPAMD_TESTDIR}/messages/received6.eml + ... Settings={symbols_enabled [EXTERNAL_RELAY_TEST, EXTERNAL_RELAY_HOSTNAME_MAP]} + ... Hostname=lame.example.net IP=192.0.2.10 + Expect Symbol With Exact Options EXTERNAL_RELAY_TEST + ... IP=192.0.2.1 HOSTNAME=mail.example.org HELO=mail.example.org + +EXTERNAL RELAY LOCAL + Scan File ${RSPAMD_TESTDIR}/messages/ham.eml + ... Settings={symbols_enabled [EXTERNAL_RELAY_TEST, EXTERNAL_RELAY_LOCAL]} + ... IP=127.0.0.1 + Expect Symbol With Exact Options EXTERNAL_RELAY_TEST + ... IP=4.31.198.44 HOSTNAME=mail.ietf.org HELO=mail.ietf.org diff --git a/test/functional/configs/maps/external_relay.hostname_map b/test/functional/configs/maps/external_relay.hostname_map new file mode 100644 index 000000000..fdb4fc07a --- /dev/null +++ b/test/functional/configs/maps/external_relay.hostname_map @@ -0,0 +1,3 @@ +cool.example.org direct +lame.example.net + diff --git a/test/functional/configs/maps/external_relay.user_map b/test/functional/configs/maps/external_relay.user_map new file mode 100644 index 000000000..bd04568da --- /dev/null +++ b/test/functional/configs/maps/external_relay.user_map @@ -0,0 +1,2 @@ +user@example.net + diff --git a/test/functional/configs/merged-local.conf b/test/functional/configs/merged-local.conf index 84bffe8dd..dd93a7ba3 100644 --- a/test/functional/configs/merged-local.conf +++ b/test/functional/configs/merged-local.conf @@ -31,6 +31,28 @@ emails { } } +external_relay { + enabled = {= env.EXTERNAL_RELAY_ENABLED =}; + + rules { + EXTERNAL_RELAY_AUTHENTICATED { + strategy = "authenticated"; + user_map = "{= env.TESTDIR =}/configs/maps/external_relay.user_map"; + } + EXTERNAL_RELAY_COUNT { + count = 4; + strategy = "count"; + } + EXTERNAL_RELAY_HOSTNAME_MAP { + hostname_map = "{= env.TESTDIR =}/configs/maps/external_relay.hostname_map"; + strategy = "hostname_map"; + } + EXTERNAL_RELAY_LOCAL { + strategy = "local"; + } + } +} + greylist { check_local = true; timeout = 4; diff --git a/test/functional/configs/merged.conf b/test/functional/configs/merged.conf index 8bec67a41..bda7044e1 100644 --- a/test/functional/configs/merged.conf +++ b/test/functional/configs/merged.conf @@ -31,5 +31,8 @@ lua = "{= env.TESTDIR =}/lua/udp.lua" # 350_magic lua = "{= env.TESTDIR =}/lua/magic.lua" +# 380_external_relay +lua = "{= env.TESTDIR =}/lua/external_relay.lua" + .include(priority=1,duplicate=merge) "{= env.TESTDIR =}/configs/merged-local.conf" .include(priority=2,duplicate=replace) "{= env.TESTDIR =}/configs/merged-override.conf" diff --git a/test/functional/lua/external_relay.lua b/test/functional/lua/external_relay.lua new file mode 100644 index 000000000..6aa3a292c --- /dev/null +++ b/test/functional/lua/external_relay.lua @@ -0,0 +1,10 @@ +rspamd_config:register_symbol({ + name = 'EXTERNAL_RELAY_TEST', + score = 0.0, + callback = function(task) + local from_ip = string.format('IP=%s', task:get_from_ip() or 'NIL') + local hostname = string.format('HOSTNAME=%s', task:get_hostname() or 'NIL') + local helo = string.format('HELO=%s', task:get_helo() or 'NIL') + return true, from_ip, hostname, helo + end +}) diff --git a/test/functional/messages/received5.eml b/test/functional/messages/received5.eml new file mode 100644 index 000000000..84d89e968 --- /dev/null +++ b/test/functional/messages/received5.eml @@ -0,0 +1,13 @@ +Received: from localhost (localhost [127.0.0.1])
+ by ietfa.amsl.com (Postfix) with ESMTPA id 00E7712024B
+ for <cfrg@ietfa.amsl.com>; Tue, 7 May 2019 14:01:07 -0700 (PDT)
+Received: from mail.ietf.org ([4.31.198.44])
+ by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTPA id k8UsBTUjeiTe for <cfrg@ietfa.amsl.com>;
+ Tue, 7 May 2019 14:01:04 -0700 (PDT)
+Received: from mail.example.org ([192.0.2.1])
+ by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id k8UsBTUjeiTe for <cfrg@ietfa.amsl.com>;
+ Tue, 7 May 2019 14:01:04 -0700 (PDT)
+
+aa
diff --git a/test/functional/messages/received6.eml b/test/functional/messages/received6.eml new file mode 100644 index 000000000..38dd801c6 --- /dev/null +++ b/test/functional/messages/received6.eml @@ -0,0 +1,17 @@ +Received: from localhost (localhost [127.0.0.1])
+ by ietfa.amsl.com (Postfix) with ESMTPA id 00E7712024B
+ for <cfrg@ietfa.amsl.com>; Tue, 7 May 2019 14:01:07 -0700 (PDT)
+Received: from cool.example.org ([4.31.198.44])
+ by lame.example.net (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTPA id k8UsBTUjeiTe for <cfrg@ietfa.amsl.com>;
+ Tue, 7 May 2019 14:01:04 -0700 (PDT)
+Received: from mail.example.org ([192.0.3.1])
+ by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id k8UsBTUjeiTe for <cfrg@ietfa.amsl.com>;
+ Tue, 7 May 2019 14:01:04 -0700 (PDT)
+Received: from mail.example.org ([192.0.2.1])
+ by cool.example.org (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id k8UsBTUjeiTe for <cfrg@ietfa.amsl.com>;
+ Tue, 7 May 2019 14:01:04 -0700 (PDT)
+
+aa
|