diff options
Diffstat (limited to 'rfc1035/spf.h')
| -rw-r--r-- | rfc1035/spf.h | 73 | 
1 files changed, 73 insertions, 0 deletions
| diff --git a/rfc1035/spf.h b/rfc1035/spf.h new file mode 100644 index 0000000..c4afea8 --- /dev/null +++ b/rfc1035/spf.h @@ -0,0 +1,73 @@ +/* +** Copyright 2004 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +#ifndef	rfc1035_spf_h +#define	rfc1035_spf_h + + +#include "rfc1035/rfc1035.h" + +#ifdef  __cplusplus +extern "C" { +#endif + +/* +   An SPF client evaluates an SPF record and produces one of seven +   results: + +     None: The domain does not publish SPF data. + +     Neutral (?): The SPF client MUST proceed as if a domain did not +     publish SPF data.  This result occurs if the domain explicitly +     specifies a "?" value, or if processing "falls off the end" of +     the SPF record. + +     Pass (+): the message meets the publishing domain's definition of +     legitimacy.  MTAs proceed to apply local policy and MAY accept or +     reject the message accordingly. + +     Fail (-): the message does not meet a domain's definition of +     legitimacy.  MTAs MAY reject the message using a permanent +     failure reply code.  (Code 550 is RECOMMENDED.  See [RFC2821] +     section 7.1.) + +     Softfail (~): the message does not meet a domain's strict +     definition of legitimacy, but the domain cannot confidently state +     that the message is a forgery.  MTAs SHOULD accept the message +     but MAY subject it to a higher transaction cost, deeper scrutiny, +     or an unfavourable score. + +   There are two error conditions, one temporary and one permanent. + +     Error: indicates an error during lookup; an MTA SHOULD reject the +     message using a transient failure code, such as 450. + +     Unknown: indicates incomplete processing: an MTA MUST proceed as +     if a domain did not publish SPF data. +*/ + +#define SPF_NONE 0 +#define SPF_NEUTRAL '?' +#define SPF_PASS '+' +#define SPF_FAIL '-' +#define SPF_SOFTFAIL '~' +#define SPF_ERROR '4' + +	/* Everything else is SPF_UNKNOWN */ +#define SPF_UNKNOWN '5' + +char rfc1035_spf_lookup(const char *mailfrom, +			const char *tcpremoteip, +			const char *tcpremotehost, +			const char *helodomain, +			const char *mydomain, +			char *errmsg_buf, +			size_t errmsg_buf_size); + +#ifdef  __cplusplus +} +#endif + +#endif | 
