Update all copyright messages to cover 1995 - 2009. Remove tab from exim_checkaccess.src
[exim.git] / src / src / acl.c
index a3e79b13d2177976c384addd8e9d58b2667c67c4..8825a8f13d81338fd62a259946ef34e77aa252d4 100644 (file)
@@ -1,10 +1,10 @@
-/* $Cambridge: exim/src/src/acl.c,v 1.83 2009/06/10 07:34:04 tom Exp $ */
+/* $Cambridge: exim/src/src/acl.c,v 1.87 2009/11/16 19:50:36 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2007 */
+/* Copyright (c) University of Cambridge 1995 - 2009 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 /* Code for handling Access Control Lists (ACLs) */
@@ -361,6 +361,7 @@ static unsigned int cond_forbids[] = {
   ~((1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_RCPT)|       /* add_header */
     (1<<ACL_WHERE_PREDATA)|(1<<ACL_WHERE_DATA)|
     (1<<ACL_WHERE_MIME)|(1<<ACL_WHERE_NOTSMTP)|
+    (1<<ACL_WHERE_DKIM)|
     (1<<ACL_WHERE_NOTSMTP_START)),
 
   (1<<ACL_WHERE_NOTSMTP)|                          /* authenticated */
@@ -2540,6 +2541,9 @@ for (; cb != NULL; cb = cb->next)
     #endif
 
     case ACLC_CONDITION:
+    /* The true/false parsing here should be kept in sync with that used in
+    expand.c when dealing with ECOND_BOOL so that we don't have too many
+    different definitions of what can be a boolean. */
     if (Ustrspn(arg, "0123456789") == Ustrlen(arg))     /* Digits, or empty */
       rc = (Uatoi(arg) == 0)? FAIL : OK;
     else
@@ -2786,20 +2790,11 @@ for (; cb != NULL; cb = cb->next)
 
     #ifndef DISABLE_DKIM
     case ACLC_DKIM_SIGNER:
-    if (dkim_signing_domain != NULL)
-      {
-      rc = match_isinlist(dkim_signing_domain,
+    if (dkim_cur_signer != NULL)
+      rc = match_isinlist(dkim_cur_signer,
                           &arg,0,NULL,NULL,MCL_STRING,TRUE,NULL);
-      if (rc == FAIL)
-        {
-        rc = match_isinlist(dkim_exim_expand_query(DKIM_IDENTITY),
-                            &arg,0,NULL,NULL,MCL_STRING,TRUE,NULL);
-        }
-      }
     else
-      {
        rc = FAIL;
-      }
     break;
 
     case ACLC_DKIM_STATUS: