~ubuntu-branches/ubuntu/hoary/courier/hoary

« back to all changes in this revision

Viewing changes to rfc1035/spf.h

  • Committer: Bazaar Package Importer
  • Author(s): Thom May
  • Date: 2004-11-29 12:09:34 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20041129120934-kkn0xj11j0n1n6lo
Tags: 0.47-3ubuntu1
* Nathaniel McCallum
 - debian/*.init: pretty initscripts
 - debian/control: version depends on lsb-base

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
** Copyright 2004 Double Precision, Inc.
 
3
** See COPYING for distribution information.
 
4
*/
 
5
 
 
6
#ifndef rfc1035_spf_h
 
7
#define rfc1035_spf_h
 
8
 
 
9
static const char rfc1035_spf_h_rcsid[]="$Id: spf.h,v 1.1 2004/08/15 16:41:02 mrsam Exp $";
 
10
 
 
11
#include "rfc1035/rfc1035.h"
 
12
 
 
13
#ifdef  __cplusplus
 
14
extern "C" {
 
15
#endif
 
16
 
 
17
/*
 
18
   An SPF client evaluates an SPF record and produces one of seven
 
19
   results:
 
20
 
 
21
     None: The domain does not publish SPF data.
 
22
 
 
23
     Neutral (?): The SPF client MUST proceed as if a domain did not
 
24
     publish SPF data.  This result occurs if the domain explicitly
 
25
     specifies a "?" value, or if processing "falls off the end" of
 
26
     the SPF record.
 
27
 
 
28
     Pass (+): the message meets the publishing domain's definition of
 
29
     legitimacy.  MTAs proceed to apply local policy and MAY accept or
 
30
     reject the message accordingly.
 
31
 
 
32
     Fail (-): the message does not meet a domain's definition of
 
33
     legitimacy.  MTAs MAY reject the message using a permanent
 
34
     failure reply code.  (Code 550 is RECOMMENDED.  See [RFC2821]
 
35
     section 7.1.)
 
36
 
 
37
     Softfail (~): the message does not meet a domain's strict
 
38
     definition of legitimacy, but the domain cannot confidently state
 
39
     that the message is a forgery.  MTAs SHOULD accept the message
 
40
     but MAY subject it to a higher transaction cost, deeper scrutiny,
 
41
     or an unfavourable score.
 
42
 
 
43
   There are two error conditions, one temporary and one permanent.
 
44
 
 
45
     Error: indicates an error during lookup; an MTA SHOULD reject the
 
46
     message using a transient failure code, such as 450.
 
47
 
 
48
     Unknown: indicates incomplete processing: an MTA MUST proceed as
 
49
     if a domain did not publish SPF data.
 
50
*/
 
51
 
 
52
#define SPF_NONE 0
 
53
#define SPF_NEUTRAL '?'
 
54
#define SPF_PASS '+'
 
55
#define SPF_FAIL '-'
 
56
#define SPF_SOFTFAIL '~'
 
57
#define SPF_ERROR '4'
 
58
 
 
59
        /* Everything else is SPF_UNKNOWN */
 
60
#define SPF_UNKNOWN '5'
 
61
 
 
62
char rfc1035_spf_lookup(const char *mailfrom,
 
63
                        const char *tcpremoteip,
 
64
                        const char *tcpremotehost,
 
65
                        const char *helodomain,
 
66
                        const char *mydomain,
 
67
                        char *errmsg_buf,
 
68
                        size_t errmsg_buf_size);
 
69
 
 
70
 
 
71
struct rfc1035_spf_info {
 
72
        const char *mailfrom;
 
73
        const char *current_domain;
 
74
        const char *tcpremoteip;
 
75
        const char *tcpremotehost;
 
76
        const char *helodomain;
 
77
        const char *mydomain;
 
78
        char *errmsg_buf;
 
79
        size_t errmsg_buf_size;
 
80
 
 
81
        size_t *lookup_cnt;
 
82
};
 
83
 
 
84
#ifdef  __cplusplus
 
85
}
 
86
#endif
 
87
 
 
88
#endif