772726aecae16189f950327fa4c392cdbb9b6ff5
[exim.git] / src / src / dmarc.h
1 /*************************************************
2 *     Exim - an Internet mail transport agent    *
3 *************************************************/
4
5 /* Experimental DMARC support.
6    Copyright (c) Todd Lyons <tlyons@exim.org> 2012 - 2014
7    License: GPL */
8
9 /* Portions Copyright (c) 2012, 2013, The Trusted Domain Project;
10    All rights reserved, licensed for use per LICENSE.opendmarc. */
11
12 #ifdef SUPPORT_DMARC
13
14 # include "opendmarc/dmarc.h"
15 # ifdef SUPPORT_SPF
16 #  include "spf2/spf.h"
17 # endif /* SUPPORT_SPF */
18
19 /* prototypes */
20 int dmarc_init();
21 int dmarc_store_data(header_line *);
22 int dmarc_process();
23 uschar *dmarc_exim_expand_query(int);
24 uschar *dmarc_exim_expand_defaults(int);
25 uschar *dmarc_auth_results_header(header_line *,uschar *);
26
27 #define DMARC_AR_HEADER        US"Authentication-Results:"
28 #define DMARC_VERIFY_STATUS    1
29
30 #define DMARC_HIST_OK          1
31 #define DMARC_HIST_DISABLED    2
32 #define DMARC_HIST_EMPTY       3
33 #define DMARC_HIST_FILE_ERR    4
34 #define DMARC_HIST_WRITE_ERR   5
35
36 /* From opendmarc.c */
37 #define DMARC_RESULT_REJECT     0
38 #define DMARC_RESULT_DISCARD    1
39 #define DMARC_RESULT_ACCEPT     2
40 #define DMARC_RESULT_TEMPFAIL   3
41 #define DMARC_RESULT_QUARANTINE 4
42
43 /* From opendmarc-ar.h */
44 /* ARES_RESULT_T -- type for specifying an authentication result */
45 #define ARES_RESULT_UNDEFINED   (-1)
46 #define ARES_RESULT_PASS    0
47 #define ARES_RESULT_UNUSED  1
48 #define ARES_RESULT_SOFTFAIL    2
49 #define ARES_RESULT_NEUTRAL 3
50 #define ARES_RESULT_TEMPERROR   4
51 #define ARES_RESULT_PERMERROR   5
52 #define ARES_RESULT_NONE    6
53 #define ARES_RESULT_FAIL    7
54 #define ARES_RESULT_POLICY  8
55 #define ARES_RESULT_NXDOMAIN    9
56 #define ARES_RESULT_SIGNED  10
57 #define ARES_RESULT_UNKNOWN 11
58 #define ARES_RESULT_DISCARD 12
59
60 #endif /* SUPPORT_DMARC */