[exim-cvs] Events: log a non-success when a client connect i…

Inizio della pagina
Delete this message
Reply to this message
Autore: Exim Git Commits Mailing List
Data:  
To: exim-cvs
Oggetto: [exim-cvs] Events: log a non-success when a client connect is denied by an event
Gitweb: https://git.exim.org/exim.git/commitdiff/95938464602a39d9307550d3bd567030ffaf5b4e
Commit:     95938464602a39d9307550d3bd567030ffaf5b4e
Parent:     f20cfa4a4481b9cf5bd644f482f9711dbe32a51d
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Sat Jan 19 22:28:54 2019 +0000
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Mon Feb 11 00:16:02 2019 +0000


    Events: log a non-success when a client connect is denied by an event


    (cherry picked from commit 6bc9c745b64e669161a04f4dd72de4dbba9fbdd2)
---
 src/src/deliver.c             |  1 +
 src/src/log.c                 |  1 +
 src/src/macros.h              |  1 +
 test/confs/5707               | 56 +++++++++++++++++++++++++++++++++++++++++++
 test/log/5707                 |  4 ++++
 test/scripts/5700-events/5707 |  6 +++++
 6 files changed, 69 insertions(+)


diff --git a/src/src/deliver.c b/src/src/deliver.c
index 1baf7d3..307989d 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 4905b6d..0aaf94a 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 e797615..185ea6a 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 0000000..35d5eff
--- /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 0000000..643dad2
--- /dev/null
+++ b/test/log/5707
@@ -0,0 +1,4 @@
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@??? 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 0000000..a8b5ffe
--- /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