diff options
author | Tom Kistner <tom@duncanthrax.net> | 2009-06-09 14:19:56 +0000 |
---|---|---|
committer | Tom Kistner <tom@duncanthrax.net> | 2009-06-09 14:19:56 +0000 |
commit | 6e85769c76ad2310bf6ff0ec10b20e8608103df3 (patch) | |
tree | 2fa5444a53fd2c638afe273df5d15b18e40bc4b9 | |
parent | bb1d997d783b6ffc13bec6d85462366d979a4c70 (diff) | |
download | exim4-6e85769c76ad2310bf6ff0ec10b20e8608103df3.tar.gz |
The last bits of DKIM support
-rw-r--r-- | src/src/acl.c | 38 |
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; |