Testsuite: add test for hanging callout connections
authorHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
Fri, 14 Feb 2020 10:20:39 +0000 (11:20 +0100)
committerHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
Tue, 18 Feb 2020 19:38:00 +0000 (20:38 +0100)
Fixed in bd95ffc2ba87fbd3c752df17bc8fd9c01586d45a

test/confs/2040 [new file with mode: 0644]
test/log/2040 [new file with mode: 0644]
test/scripts/2000-GnuTLS/2040 [new file with mode: 0644]
test/stdout/2040 [new file with mode: 0644]

diff --git a/test/confs/2040 b/test/confs/2040
new file mode 100644 (file)
index 0000000..fcb4680
--- /dev/null
@@ -0,0 +1,46 @@
+# Exim test configuration 2040
+# The test uses the same config for two Exim processes
+#
+#              ,------ callout -------.
+#              |                      |
+#              |      .----------.    |
+#              `--> PORT_S       |    |
+# client-gnutls --> PORT_D  Exim |----'
+#                     `----------'
+
+.include DIR/aux-var/tls_conf_prefix
+
+primary_hostname = myhost.test.ex
+
+# ----- Main settings -----
+
+tls_advertise_hosts = *
+
+tls_certificate = DIR/aux-fixed/cert1
+tls_privatekey = DIR/aux-fixed/cert1
+
+acl_smtp_rcpt = acl_check_rcpt
+
+begin acl
+acl_check_rcpt:
+
+    accept condition = ${if eq{$received_port}{PORT_S}}
+           message   = Accepted (rcpt on backend)
+
+    accept verify  = recipient/callout=no_cache
+          message = Accepted (rcpt via callout)
+
+begin routers
+catchall:
+    driver = accept
+    transport = local_smtp
+
+begin transports
+local_smtp:
+    driver = smtp
+    port = PORT_S
+    hosts = 127.0.0.1
+    hosts_require_tls = *
+    allow_localhost
+
+# End
diff --git a/test/log/2040 b/test/log/2040
new file mode 100644 (file)
index 0000000..d239d2c
--- /dev/null
@@ -0,0 +1,3 @@
+
+******** SERVER ********
+1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port PORT_D port PORT_S
diff --git a/test/scripts/2000-GnuTLS/2040 b/test/scripts/2000-GnuTLS/2040
new file mode 100644 (file)
index 0000000..c8780d2
--- /dev/null
@@ -0,0 +1,19 @@
+# TLS server: uncork in pipelining mode
+gnutls
+exim -DSERVER=server -bd -oX PORT_D:PORT_S
+****
+client-gnutls 127.0.0.1 PORT_D
+??? 220
+EHLO rhu.barb
+????250
+STARTTLS
+??? 220
+EHLO rhu.barb
+????250
+>>> MAIL FROM:<>\r\nRCPT TO:test@example.com\r\n
+??? 250 OK
+??? 250 Accepted (rcpt via callout)
+QUIT
+??? 2
+****
+killdaemon
diff --git a/test/stdout/2040 b/test/stdout/2040
new file mode 100644 (file)
index 0000000..10f5cb1
--- /dev/null
@@ -0,0 +1,21 @@
+Connecting to 127.0.0.1 port 1225 ... connected
+??? 220
+<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+>>> EHLO rhu.barb
+????250
+>>> STARTTLS
+??? 220
+<<< 220 TLS go ahead
+Attempting to start TLS
+Succeeded in starting TLS
+>>> EHLO rhu.barb
+????250
+>>> MAIL FROM:<>\r\nRCPT TO:test@example.com\r\n
+??? 250 OK
+<<< 250 OK
+??? 250 Accepted (rcpt via callout)
+<<< 250 Accepted (rcpt via callout)
+>>> QUIT
+??? 2
+<<< 221 myhost.test.ex closing connection
+End of script