Added log selector "unknown_in_list".
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 12 Sep 2005 13:39:31 +0000 (13:39 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 12 Sep 2005 13:39:31 +0000 (13:39 +0000)
doc/doc-txt/ChangeLog
doc/doc-txt/NewStuff
src/src/globals.c
src/src/macros.h
src/src/match.c

index 08907ff..5b1c2fa 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.219 2005/09/12 10:49:30 ph10 Exp $
+$Cambridge: 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
 -------------------------------------------
@@ -159,6 +159,9 @@ PH/38 When log_selector = +received_sender was set, and the addition of the
       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 15cf0b4..85be6dc 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/NewStuff,v 1.67 2005/09/12 10:08:53 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/NewStuff,v 1.68 2005/09/12 13:39:31 ph10 Exp $
 
 New Features in Exim
 --------------------
@@ -142,6 +142,10 @@ PH/10 There is a new ACL control called "suppress_local_fixups". This applies
       (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 a4e37fb..78ba196 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/globals.c,v 1.36 2005/09/12 10:08:54 ph10 Exp $ */
+/* $Cambridge: 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 @@ bit_table log_options[]        = {
   { 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 432da93..57cecea 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/macros.h,v 1.18 2005/08/01 13:20:28 ph10 Exp $ */
+/* $Cambridge: 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 @@ set all the bits in a multi-word selector. */
 #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 100e4c0..18787e8 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/match.c,v 1.8 2005/08/01 13:20:28 ph10 Exp $ */
+/* $Cambridge: 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 @@ while ((sss = string_nextinlist(&list, &sep, buffer, sizeof(buffer))) != NULL)
           {
           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 @@ while ((sss = string_nextinlist(&list, &sep, buffer, sizeof(buffer))) != NULL)
           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;
           }