ph10 2005/09/12 14:39:31 BST
Modified files:
exim-doc/doc-txt ChangeLog NewStuff
exim-src/src globals.c macros.h match.c
exim-test-orig/AutoTest/confs 050
exim-test-orig/AutoTest/scripts 050
exim-test-orig/AutoTest/stderr 050
exim-test-orig/AutoTest/stdout 050
Log:
Added log selector "unknown_in_list".
Revision Changes Path
1.220 +3 -0 exim/exim-doc/doc-txt/ChangeLog
1.68 +4 -0 exim/exim-doc/doc-txt/NewStuff
1.37 +2 -1 exim/exim-src/src/globals.c
1.19 +1 -0 exim/exim-src/src/macros.h
1.9 +12 -2 exim/exim-src/src/match.c
1.2 +3 -1 exim/exim-test-orig/AutoTest/confs/050
1.2 +6 -0 exim/exim-test-orig/AutoTest/scripts/050
1.2 +25 -0 exim/exim-test-orig/AutoTest/stderr/050
1.2 +9 -0 exim/exim-test-orig/AutoTest/stdout/050
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.219
retrieving revision 1.220
diff -u -r1.219 -r1.220
--- ChangeLog 12 Sep 2005 10:49:30 -0000 1.219
+++ ChangeLog 12 Sep 2005 13:39:31 -0000 1.220
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.219 2005/09/12 10:49:30 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.220 2005/09/12 13:39:31 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -158,6 +158,9 @@
sender made the log line's construction buffer exactly full, or one byte
less than full, an overflow happened when the terminating "\n" was
subsequently added.
+
+PH/39 Added a new log selector, "unknown_in_list", which provokes a log entry
+ when the result of a list match is failure because a DNS lookup failed.
Exim version 4.52
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -r1.67 -r1.68
--- NewStuff 12 Sep 2005 10:08:53 -0000 1.67
+++ NewStuff 12 Sep 2005 13:39:31 -0000 1.68
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.67 2005/09/12 10:08:53 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.68 2005/09/12 13:39:31 ph10 Exp $
New Features in Exim
--------------------
@@ -141,6 +141,10 @@
suppress_local_fixups.
(3) Remotely submitted, no fixups applied: the default.
(4) Remotely submitted, fixups applied: use control = submission.
+
+PH/11 There is a new log selector, "unknown_in_list", which provokes a log
+ entry when the result of a list match is failure because a DNS lookup
+ failed.
Exim version 4.52
Index: globals.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/globals.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- globals.c 12 Sep 2005 10:08:54 -0000 1.36
+++ globals.c 12 Sep 2005 13:39:31 -0000 1.37
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/globals.c,v 1.36 2005/09/12 10:08:54 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/globals.c,v 1.37 2005/09/12 13:39:31 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -676,7 +676,8 @@
{ US"subject", LX_subject },
{ US"tls_certificate_verified", LX_tls_certificate_verified },
{ US"tls_cipher", LX_tls_cipher },
- { US"tls_peerdn", LX_tls_peerdn }
+ { US"tls_peerdn", LX_tls_peerdn },
+ { US"unknown_in_list", LX_unknown_in_list }
};
int log_options_count = sizeof(log_options)/sizeof(bit_table);
Index: macros.h
===================================================================
RCS file: /home/cvs/exim/exim-src/src/macros.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- macros.h 1 Aug 2005 13:20:28 -0000 1.18
+++ macros.h 12 Sep 2005 13:39:31 -0000 1.19
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/macros.h,v 1.18 2005/08/01 13:20:28 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/macros.h,v 1.19 2005/09/12 13:39:31 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -390,6 +390,7 @@
#define LX_tls_certificate_verified 0x80010000
#define LX_tls_cipher 0x80020000
#define LX_tls_peerdn 0x80040000
+#define LX_unknown_in_list 0x80080000
#define L_default (L_connection_reject | \
L_delay_delivery | \
Index: match.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/match.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- match.c 1 Aug 2005 13:20:28 -0000 1.8
+++ match.c 12 Sep 2005 13:39:31 -0000 1.9
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/match.c,v 1.8 2005/08/01 13:20:28 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/match.c,v 1.9 2005/09/12 13:39:31 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -720,7 +720,12 @@
{
HDEBUG(D_lists) debug_printf("%s %s (%s)\n", ot,
include_unknown? "yes":"no", error);
- if (!include_unknown) return FAIL;
+ if (!include_unknown)
+ {
+ if ((log_extra_selector & LX_unknown_in_list) != 0)
+ log_write(0, LOG_MAIN, "list matching forced to fail: %s", error);
+ return FAIL;
+ }
log_write(0, LOG_MAIN, "%s: accepted by +include_unknown", error);
return OK;
}
@@ -811,7 +816,12 @@
HDEBUG(D_lists) debug_printf("%s %s (%s)\n", ot,
include_unknown? "yes":"no", error);
(void)fclose(f);
- if (!include_unknown) return FAIL;
+ if (!include_unknown)
+ {
+ if ((log_extra_selector & LX_unknown_in_list) != 0)
+ log_write(0, LOG_MAIN, "list matching forced to fail: %s", error);
+ return FAIL;
+ }
log_write(0, LOG_MAIN, "%s: accepted by +include_unknown", error);
return OK;
}
Index: 050
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/confs/050,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 050 8 Oct 2004 14:49:15 -0000 1.1
+++ 050 12 Sep 2005 13:39:31 -0000 1.2
@@ -1,5 +1,7 @@
# Exim test configuration 050
+LOG_SELECTOR=
+
# Macros are set externally in order to get the path
# of the Exim that is being tested, and the directory
# in which the test data lives.
@@ -14,7 +16,7 @@
acl_smtp_rcpt = check_recipient$local_part
sender_unqualified_hosts = +include_unknown: ^ten-1\\.test\\.ex
-
+LOG_SELECTOR
# ------ ACL ------
Index: 050
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/scripts/050,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 050 8 Oct 2004 14:49:52 -0000 1.1
+++ 050 12 Sep 2005 13:39:31 -0000 1.2
@@ -22,3 +22,9 @@
rcpt to:<z@???>
quit
****
+0
+exim -bh 10.0.0.13 -DLOG_SELECTOR=log_selector=+unknown_in_list
+MAIL FROM:<ph10@???>
+rcpt to:<y@???>
+quit
+****
Index: 050
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stderr/050,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 050 8 Oct 2004 14:50:08 -0000 1.1
+++ 050 12 Sep 2005 13:39:31 -0000 1.2
@@ -94,3 +94,28 @@
LOG: no IP address found for host non.existent.invalid (during SMTP connection from [10.0.0.13])
>>> failed to find IP address for non.existent.invalid: item ignored by +ignore_unknownhost in "+ignore_unknown : non.existent.invalid : 10.0.0.13"? yes (matched "10.0.0.13")
>>> accept: condition test succeeded
+>>> host in hosts_connection_nolog? no (option unset)
+>>> host in host_lookup? no (option unset)
+>>> host in host_reject_connection? no (option unset)
+>>> sender host name required, to match against ^ten-1\.test\.ex
+>>> looking up host name for 10.0.0.13
+>>> IP address lookup using gethostbyaddr()
+>>> IP address lookup failed: h_errno=1
+LOG: no host name found for IP address 10.0.0.13
+>>> host in sender_unqualified_hosts? yes (failed to find host name for 10.0.0.13)
+LOG: failed to find host name for 10.0.0.13: accepted by +include_unknown
+>>> 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)
+>>> using ACL "check_recipienty"
+>>> processing "accept"
+>>> check hosts = non.existent.invalid : 10.0.0.13
+>>> no IP address found for host non.existent.invalid (during SMTP connection from [10.0.0.13])
+LOG: no IP address found for host non.existent.invalid (during SMTP connection from [10.0.0.13])
+>>> host in "non.existent.invalid : 10.0.0.13"? no (failed to find IP address for non.existent.invalid)
+LOG: list matching forced to fail: failed to find IP address for non.existent.invalid
+>>> accept: condition test failed
+>>> processing "deny"
+>>> deny: condition test succeeded
+LOG: H=[10.0.0.13] F=<ph10@???> rejected RCPT <y@???>: "Denied"
Index: 050
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/050,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 050 8 Oct 2004 14:50:13 -0000 1.1
+++ 050 12 Sep 2005 13:39:31 -0000 1.2
@@ -34,3 +34,12 @@
250 OK
250 Accepted
221 myhost.test.ex closing connection
+
+**** SMTP testing session as if from host 10.0.0.13
+**** but without any ident (RFC 1413) callback.
+**** This is not for real!
+
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250 OK
+550 "Denied"
+221 myhost.test.ex closing connection