summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Kistner <tom@duncanthrax.net>2009-06-09 14:19:56 +0000
committerTom Kistner <tom@duncanthrax.net>2009-06-09 14:19:56 +0000
commit6e85769c76ad2310bf6ff0ec10b20e8608103df3 (patch)
tree2fa5444a53fd2c638afe273df5d15b18e40bc4b9
parentbb1d997d783b6ffc13bec6d85462366d979a4c70 (diff)
downloadexim4-6e85769c76ad2310bf6ff0ec10b20e8608103df3.tar.gz
The last bits of DKIM support
-rw-r--r--src/src/acl.c38
1 files changed, 37 insertions, 1 deletions
diff --git a/src/src/acl.c b/src/src/acl.c
index fece68be7..a317512ee 100644
--- a/src/src/acl.c
+++ b/src/src/acl.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/acl.c,v 1.82.2.2 2009/05/20 14:30:14 tom Exp $ */
+/* $Cambridge: exim/src/src/acl.c,v 1.82.2.3 2009/06/09 14:19:56 tom Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -65,6 +65,10 @@ enum { ACLC_ACL,
#ifdef WITH_OLD_DEMIME
ACLC_DEMIME,
#endif
+#ifndef DISABLE_DKIM
+ ACLC_DKIM_SIGNER,
+ ACLC_DKIM_STATUS,
+#endif
ACLC_DNSLISTS,
ACLC_DOMAINS,
ACLC_ENCRYPTED,
@@ -123,6 +127,10 @@ static uschar *conditions[] = {
#ifdef WITH_OLD_DEMIME
US"demime",
#endif
+#ifndef DISABLE_DKIM
+ US"dkim_signer",
+ US"dkim_status",
+#endif
US"dnslists",
US"domains",
US"encrypted",
@@ -243,6 +251,10 @@ static uschar cond_expand_at_top[] = {
#ifdef WITH_OLD_DEMIME
TRUE, /* demime */
#endif
+#ifndef DISABLE_DKIM
+ TRUE, /* dkim_signer */
+ TRUE, /* dkim_status */
+#endif
TRUE, /* dnslists */
FALSE, /* domains */
FALSE, /* encrypted */
@@ -299,6 +311,10 @@ static uschar cond_modifiers[] = {
#ifdef WITH_OLD_DEMIME
FALSE, /* demime */
#endif
+#ifndef DISABLE_DKIM
+ FALSE, /* dkim_signer */
+ FALSE, /* dkim_status */
+#endif
FALSE, /* dnslists */
FALSE, /* domains */
FALSE, /* encrypted */
@@ -388,6 +404,14 @@ static unsigned int cond_forbids[] = {
~((1<<ACL_WHERE_DATA)|(1<<ACL_WHERE_NOTSMTP)), /* demime */
#endif
+ #ifndef DISABLE_DKIM
+ (unsigned int)
+ ~(1<<ACL_WHERE_DKIM), /* dkim_signer */
+
+ (unsigned int)
+ ~(1<<ACL_WHERE_DKIM), /* dkim_status */
+ #endif
+
(1<<ACL_WHERE_NOTSMTP)| /* dnslists */
(1<<ACL_WHERE_NOTSMTP_START),
@@ -2760,6 +2784,18 @@ for (; cb != NULL; cb = cb->next)
break;
#endif
+ #ifndef DISABLE_DKIM
+ case ACLC_DKIM_SIGNER:
+ rc = match_isinlist(dkim_signing_domain,
+ &arg,0,NULL,NULL,MCL_STRING,TRUE,NULL);
+ break;
+
+ case ACLC_DKIM_STATUS:
+ rc = match_isinlist(dkim_exim_expand_query(DKIM_VERIFY_STATUS),
+ &arg,0,NULL,NULL,MCL_STRING,TRUE,NULL);
+ break;
+ #endif
+
case ACLC_DNSLISTS:
rc = verify_check_dnsbl(&arg);
break;