summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2019-01-19 22:28:54 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2019-02-11 00:16:02 +0000
commit95938464602a39d9307550d3bd567030ffaf5b4e (patch)
tree3f4d4637680be26e69692f13093973eed68a083a
parentf20cfa4a4481b9cf5bd644f482f9711dbe32a51d (diff)
Events: log a non-success when a client connect is denied by an event
(cherry picked from commit 6bc9c745b64e669161a04f4dd72de4dbba9fbdd2)
-rw-r--r--src/src/deliver.c1
-rw-r--r--src/src/log.c1
-rw-r--r--src/src/macros.h1
-rw-r--r--test/confs/570756
-rw-r--r--test/log/57074
-rw-r--r--test/scripts/5700-events/57076
6 files changed, 69 insertions, 0 deletions
diff --git a/src/src/deliver.c b/src/src/deliver.c
index 1baf7d371..307989d40 100644
--- a/src/src/deliver.c
+++ b/src/src/deliver.c
@@ -856,6 +856,7 @@ if (action)
{
DEBUG(D_deliver)
debug_printf("Event(%s): event_action returned \"%s\"\n", event, s);
+ errno = ERRNO_EVENT;
return s;
}
}
diff --git a/src/src/log.c b/src/src/log.c
index 4905b6d54..0aaf94a31 100644
--- a/src/src/log.c
+++ b/src/src/log.c
@@ -112,6 +112,7 @@ static const uschar * exim_errstrings[] = {
US"Local-only delivery",
US"Domain in queue_domains",
US"Transport concurrency limit",
+ US"Event requests alternate response",
};
diff --git a/src/src/macros.h b/src/src/macros.h
index e797615a1..185ea6aff 100644
--- a/src/src/macros.h
+++ b/src/src/macros.h
@@ -570,6 +570,7 @@ table exim_errstrings[] in log.c */
#define ERRNO_LOCAL_ONLY (-54) /* Local-only delivery */
#define ERRNO_QUEUE_DOMAIN (-55) /* Domain in queue_domains */
#define ERRNO_TRETRY (-56) /* Transport concurrency limit */
+#define ERRNO_EVENT (-57) /* Event processing request alternate response */
diff --git a/test/confs/5707 b/test/confs/5707
new file mode 100644
index 000000000..35d5eff47
--- /dev/null
+++ b/test/confs/5707
@@ -0,0 +1,56 @@
+# Exim test configuration 5707
+
+.include DIR/aux-var/std_conf_prefix
+
+
+# ----- Main settings -----
+
+acl_smtp_rcpt = accept
+acl_smtp_data = accept
+
+event_action = ${acl {logger}}
+
+
+# ----- ACL -----
+
+begin acl
+
+.include DIR/aux-fixed/event-logger-acl
+
+conn_deny:
+ accept !condition = ${if eq {tcp:connect}{$event_name}}
+ deny logwrite = Denying tcp connection
+ message = deny
+
+# ----- Routers -----
+
+begin routers
+
+dump_bounces:
+ driver = redirect
+ senders = :
+ data = :blackhole:
+
+others:
+ driver = manualroute
+ route_list = * 127.0.0.1 byname
+ self = send
+ transport = smtp
+ errors_to = ""
+ no_more
+
+
+# ----- Transports -----
+
+begin transports
+
+smtp:
+ driver = smtp
+ port = PORT_S
+ event_action = ${acl {conn_deny}}
+
+# ----- Retry -----
+begin retry
+* * F,5d,10s
+
+# End
diff --git a/test/log/5707 b/test/log/5707
new file mode 100644
index 000000000..643dad214
--- /dev/null
+++ b/test/log/5707
@@ -0,0 +1,4 @@
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@the.local.host.name U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaX-0005vi-00 Denying tcp connection
+1999-03-02 09:44:33 10HmaX-0005vi-00 H=127.0.0.1 [127.0.0.1] Event requests alternate response
+1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@domain1 R=others T=smtp defer (-57)
diff --git a/test/scripts/5700-events/5707 b/test/scripts/5700-events/5707
new file mode 100644
index 000000000..a8b5ffe70
--- /dev/null
+++ b/test/scripts/5700-events/5707
@@ -0,0 +1,6 @@
+# tcp:connect deny
+#
+exim -odf userx@domain1
+A deliverable message
+****
+no_msglog_check