DKIM: Allow the DKIM ACL to override verification results. Bug 2186
[exim.git] / src / src / receive.c
index 2d9aacd31616b9cd199b775ba5b4e8653073ae13..f181f1a51e1a313b9338e3d4c63faa819e1877df 100644 (file)
@@ -190,7 +190,7 @@ if (STATVFS(CS path, &statbuf) != 0)
     log_write(0, LOG_MAIN|LOG_PANIC, "cannot accept message: failed to stat "
       "%s directory %s: %s", name, path, strerror(errno));
     smtp_closedown(US"spool or log directory problem");
-    exim_exit(EXIT_FAILURE);
+    exim_exit(EXIT_FAILURE, NULL);
     }
 
 *inodeptr = (statbuf.F_FILES > 0)? statbuf.F_FAVAIL : -1;
@@ -343,7 +343,7 @@ if (!already_bombing_out)
 
 /* Exit from the program (non-BSMTP cases) */
 
-exim_exit(EXIT_FAILURE);
+exim_exit(EXIT_FAILURE, NULL);
 }
 
 
@@ -1142,7 +1142,7 @@ if (error_handling == ERRORS_SENDER)
 else
   fprintf(stderr, "exim: %s%s\n", text2, text1);  /* Sic */
 (void)fclose(f);
-exim_exit(error_rc);
+exim_exit(error_rc, US"");
 }
 
 
@@ -3324,7 +3324,7 @@ if (extract_recip && (bad_addresses != NULL || recipients_count == 0))
     {
     Uunlink(spool_name);
     (void)fclose(data_file);
-    exim_exit(error_rc);
+    exim_exit(error_rc, US"receiving");
     }
   }
 
@@ -3405,8 +3405,8 @@ else
         else
           {
           int sep = 0;
-          const uschar *ptr = dkim_verify_signers_expanded;
-          uschar *item = NULL;
+          const uschar * ptr = dkim_verify_signers_expanded;
+          uschar * item = NULL;
           gstring * seen_items = NULL;
 
           /* Default to OK when no items are present */
@@ -3452,6 +3452,7 @@ else
             dkim_exim_acl_setup(item);
             rc = acl_check(ACL_WHERE_DKIM, NULL, acl_smtp_dkim,
                  &user_msg, &log_msg);
+           dkim_exim_verify_log_item();
 
             if (rc != OK)
              {
@@ -3467,7 +3468,7 @@ else
             {
             recipients_count = 0;
             blackholed_by = US"DKIM ACL";
-            if (log_msg != NULL)
+            if (log_msg)
               blackhole_log_msg = string_sprintf(": %s", log_msg);
             }
           else if (rc != OK)
@@ -3481,6 +3482,8 @@ else
             }
           }
         }
+      else
+       dkim_exim_verify_log_all();
       }
 #endif /* DISABLE_DKIM */