diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2021-09-28 23:27:59 +0100 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2021-09-28 23:27:59 +0100 |
commit | c9433c53ad292c2f7ec05aa9d083767f95d07858 (patch) | |
tree | 26b8e76f08b9813a2119bceca0b0e3b1039b7c8b /test | |
parent | 3bc5af4b43dd07dc06c546bf0b402760f79f7710 (diff) | |
parent | 513ea57aae151098dad2df9d05a3b495de3aac48 (diff) |
Merge branch '4.next'
Diffstat (limited to 'test')
-rw-r--r-- | test/confs/0626 | 31 | ||||
-rw-r--r-- | test/scripts/0000-Basic/0002 | 1 | ||||
-rw-r--r-- | test/scripts/0000-Basic/0626 | 82 | ||||
-rw-r--r-- | test/stderr/0626 | 142 | ||||
-rw-r--r-- | test/stdout/0002 | 1 | ||||
-rw-r--r-- | test/stdout/0626 | 99 |
6 files changed, 356 insertions, 0 deletions
diff --git a/test/confs/0626 b/test/confs/0626 new file mode 100644 index 000000000..872c4b20a --- /dev/null +++ b/test/confs/0626 @@ -0,0 +1,31 @@ +# Exim test configuration 0626 +# ACL seen condition + +.include DIR/aux-var/std_conf_prefix + + +# ----- Main settings ----- + +primary_hostname = test.ex +queue_only + +acl_smtp_rcpt = chk_rcpt + +# ----- ACL ----- + +begin acl + +chk_rcpt: + accept seen = OPT + +# seen = never / $sender_host_addreee / per_call +# seen = before=10s +# seen = before=10s / write +# seen = since / readonly +# +# seen = -10s +# seen = -10s / readonly +# seen = 2s +# seen = 0s / update=20d +# +# End diff --git a/test/scripts/0000-Basic/0002 b/test/scripts/0000-Basic/0002 index e74ca6e39..463ad96e9 100644 --- a/test/scripts/0000-Basic/0002 +++ b/test/scripts/0000-Basic/0002 @@ -251,6 +251,7 @@ mask: ${mask:a.b.c.d} mask: ${mask:2a00:2:3:4:5:6:7:8/79} mask: ${mask:2a00:2:3:4:5:6:7:8/128} mask: ${mask:2a00:2:3:4:5:6:7:8/129} +mask_n: ${mask_n:2a00:2:3:4:5:6:7:8/79} ipv6denorm: ${ipv6denorm:::1} ipv6denorm: ${ipv6denorm:fe00::1} ipv6denorm: ${ipv6denorm:192.168.0.1} diff --git a/test/scripts/0000-Basic/0626 b/test/scripts/0000-Basic/0626 new file mode 100644 index 000000000..6da58ee48 --- /dev/null +++ b/test/scripts/0000-Basic/0626 @@ -0,0 +1,82 @@ +# ACL 'seen' condition +# +exim -DOPT='-1s' -bh 127.0.0.1 +HELO test +MAIL FROM:<tester@test.ex> +RCPT TO:<a1@test.ex> +QUIT +**** +# Check that a hints DB was created. +# Only the key is useful thanks to munging; should match the IP used above. +dump seen +# +sleep 1 +# should now see old-enough record +exim -DOPT='-1s' -bh 127.0.0.1 +HELO test +MAIL FROM:<tester@test.ex> +RCPT TO:<a1@test.ex> +QUIT +**** +# force an update (visible via debug output in stdout for -bh) +exim -DOPT='-1s / write' -bh 127.0.0.1 +HELO test +MAIL FROM:<tester@test.ex> +RCPT TO:<a1@test.ex> +QUIT +**** +# default key should change with ip +exim -DOPT='-1s' -bh HOSTIPV4 +HELO test +MAIL FROM:<tester@test.ex> +RCPT TO:<a1@test.ex> +QUIT +**** +dump seen +# explicit key (also checking expansion) +exim -DOPT='-1s / key=${sender_host_address}_foo' -bh 127.0.0.1 +HELO test +MAIL FROM:<tester@test.ex> +RCPT TO:<a1@test.ex> +QUIT +**** +dump seen +# check refresh +sleep 1 +exim -DOPT='-1s / refresh=1s' -bh 127.0.0.1 +HELO test +MAIL FROM:<tester@test.ex> +RCPT TO:<a1@test.ex> +QUIT +**** +# +# +# +# +# +# test for seen-more-recently-than +# that previous one should be no older than 5s, so this should pass +# do not update +# check list-parsing spaceless while we're here +exim -DOPT='5s/key=${sender_host_address}_foo/readonly' -bh 127.0.0.1 +HELO test +MAIL FROM:<tester@test.ex> +RCPT TO:<a1@test.ex> +QUIT +**** +# check the above no-update by waiting longer than the later-than interval; should fail +# should update +sleep 2 +exim -DOPT='1s / key=${sender_host_address}_foo' -bh 127.0.0.1 +HELO test +MAIL FROM:<tester@test.ex> +RCPT TO:<a1@test.ex> +QUIT +**** +# having updated, should pass +exim -DOPT='1s / key=${sender_host_address}_foo' -bh 127.0.0.1 +HELO test +MAIL FROM:<tester@test.ex> +RCPT TO:<a1@test.ex> +QUIT +**** diff --git a/test/stderr/0626 b/test/stderr/0626 new file mode 100644 index 000000000..25e96bc4e --- /dev/null +++ b/test/stderr/0626 @@ -0,0 +1,142 @@ +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? no (end of list) +>>> using ACL "chk_rcpt" +>>> processing "accept" (TESTSUITE/test-config 19) +>>> check seen = -1s +>>> seen db written (create) +>>> accept: condition test failed in ACL "chk_rcpt" +>>> end of ACL "chk_rcpt": implicit DENY +LOG: H=(test) [127.0.0.1] F=<tester@test.ex> rejected RCPT <a1@test.ex> +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? no (end of list) +>>> using ACL "chk_rcpt" +>>> processing "accept" (TESTSUITE/test-config 19) +>>> check seen = -1s +>>> accept: condition test succeeded in ACL "chk_rcpt" +>>> end of ACL "chk_rcpt": ACCEPT +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? no (end of list) +>>> using ACL "chk_rcpt" +>>> processing "accept" (TESTSUITE/test-config 19) +>>> check seen = -1s / write +>>> seen db written (update) +>>> accept: condition test succeeded in ACL "chk_rcpt" +>>> end of ACL "chk_rcpt": ACCEPT +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? no (end of list) +>>> using ACL "chk_rcpt" +>>> processing "accept" (TESTSUITE/test-config 19) +>>> check seen = -1s +>>> seen db written (create) +>>> accept: condition test failed in ACL "chk_rcpt" +>>> end of ACL "chk_rcpt": implicit DENY +LOG: H=(test) [ip4.ip4.ip4.ip4] F=<tester@test.ex> rejected RCPT <a1@test.ex> +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? no (end of list) +>>> using ACL "chk_rcpt" +>>> processing "accept" (TESTSUITE/test-config 19) +>>> check seen = -1s / key=${sender_host_address}_foo +>>> = -1s / key=127.0.0.1_foo +>>> seen db written (create) +>>> accept: condition test failed in ACL "chk_rcpt" +>>> end of ACL "chk_rcpt": implicit DENY +LOG: H=(test) [127.0.0.1] F=<tester@test.ex> rejected RCPT <a1@test.ex> +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? no (end of list) +>>> using ACL "chk_rcpt" +>>> processing "accept" (TESTSUITE/test-config 19) +>>> check seen = -1s / refresh=1s +>>> seen db written (refresh) +>>> accept: condition test succeeded in ACL "chk_rcpt" +>>> end of ACL "chk_rcpt": ACCEPT +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? no (end of list) +>>> using ACL "chk_rcpt" +>>> processing "accept" (TESTSUITE/test-config 19) +>>> check seen = 5s/key=${sender_host_address}_foo/readonly +>>> = 5s/key=127.0.0.1_foo/readonly +>>> seen db not written (readonly) +>>> accept: condition test succeeded in ACL "chk_rcpt" +>>> end of ACL "chk_rcpt": ACCEPT +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? no (end of list) +>>> using ACL "chk_rcpt" +>>> processing "accept" (TESTSUITE/test-config 19) +>>> check seen = 1s / key=${sender_host_address}_foo +>>> = 1s / key=127.0.0.1_foo +>>> seen db written (update) +>>> accept: condition test failed in ACL "chk_rcpt" +>>> end of ACL "chk_rcpt": implicit DENY +LOG: H=(test) [127.0.0.1] F=<tester@test.ex> rejected RCPT <a1@test.ex> +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? no (end of list) +>>> using ACL "chk_rcpt" +>>> processing "accept" (TESTSUITE/test-config 19) +>>> check seen = 1s / key=${sender_host_address}_foo +>>> = 1s / key=127.0.0.1_foo +>>> seen db written (update) +>>> accept: condition test succeeded in ACL "chk_rcpt" +>>> end of ACL "chk_rcpt": ACCEPT diff --git a/test/stdout/0002 b/test/stdout/0002 index f6f722e47..f340b9426 100644 --- a/test/stdout/0002 +++ b/test/stdout/0002 @@ -233,6 +233,7 @@ newline tab\134backslash ~tilde\177DEL\200\201. > mask: 2a00.0002.0003.0004.0004.0000.0000.0000/79 > mask: 2a00.0002.0003.0004.0005.0006.0007.0008/128 > Failed: mask value too big in "2a00:2:3:4:5:6:7:8/129" +> mask_n: 2a00:2:3:4:4::/79 > ipv6denorm: 0000:0000:0000:0000:0000:0000:0000:0001 > ipv6denorm: fe00:0000:0000:0000:0000:0000:0000:0001 > ipv6denorm: 0000:0000:0000:0000:0000:ffff:c0a8:0001 diff --git a/test/stdout/0626 b/test/stdout/0626 new file mode 100644 index 000000000..44b481f31 --- /dev/null +++ b/test/stdout/0626 @@ -0,0 +1,99 @@ + +**** SMTP testing session as if from host 127.0.0.1 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 test.ex Hello test [127.0.0.1]
+250 OK
+550 Administrative prohibition
+221 test.ex closing connection
++++++++++++++++++++++++++++ +127.0.0.1 07-Mar-2000 12:21:52 + +**** SMTP testing session as if from host 127.0.0.1 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 test.ex Hello test [127.0.0.1]
+250 OK
+250 Accepted
+221 test.ex closing connection
+ +**** SMTP testing session as if from host 127.0.0.1 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 test.ex Hello test [127.0.0.1]
+250 OK
+250 Accepted
+221 test.ex closing connection
+ +**** SMTP testing session as if from host ip4.ip4.ip4.ip4 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 test.ex Hello test [ip4.ip4.ip4.ip4]
+250 OK
+550 Administrative prohibition
+221 test.ex closing connection
++++++++++++++++++++++++++++ +ip4.ip4.ip4.ip4 07-Mar-2000 12:21:52 +127.0.0.1 07-Mar-2000 12:21:52 + +**** SMTP testing session as if from host 127.0.0.1 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 test.ex Hello test [127.0.0.1]
+250 OK
+550 Administrative prohibition
+221 test.ex closing connection
++++++++++++++++++++++++++++ +127.0.0.1_foo 07-Mar-2000 12:21:52 +ip4.ip4.ip4.ip4 07-Mar-2000 12:21:52 +127.0.0.1 07-Mar-2000 12:21:52 + +**** SMTP testing session as if from host 127.0.0.1 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 test.ex Hello test [127.0.0.1]
+250 OK
+250 Accepted
+221 test.ex closing connection
+ +**** SMTP testing session as if from host 127.0.0.1 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 test.ex Hello test [127.0.0.1]
+250 OK
+250 Accepted
+221 test.ex closing connection
+ +**** SMTP testing session as if from host 127.0.0.1 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 test.ex Hello test [127.0.0.1]
+250 OK
+550 Administrative prohibition
+221 test.ex closing connection
+ +**** SMTP testing session as if from host 127.0.0.1 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 test.ex Hello test [127.0.0.1]
+250 OK
+250 Accepted
+221 test.ex closing connection
|