19 #ifndef INC_SPF_RECORD
20 #define INC_SPF_RECORD
73 #define SPF_MAX_STR_LEN 255
77 #define SPF_MAX_MECH_LEN 511
78 #define SPF_MAX_MOD_LEN 511
88 #define PARM_LP_FROM 0
89 #define PARM_ENV_FROM 1
90 #define PARM_DP_FROM 2
91 #define PARM_CUR_DOM 3
92 #define PARM_CLIENT_IP 4
93 #define PARM_CLIENT_IP_P 5
95 #define PARM_CLIENT_DOM 7
96 #define PARM_CLIENT_VER 8
97 #define PARM_HELO_DOM 9
98 #define PARM_REC_DOM 10
100 #define PARM_STRING 12
104 struct SPF_data_str_struct
115 struct SPF_data_var_struct
119 unsigned short rev: 1;
120 unsigned short url_encode: 1;
121 unsigned short delim_dot: 1;
122 unsigned short delim_dash: 1;
123 unsigned short delim_plus: 1;
124 unsigned short delim_equal: 1;
125 unsigned short delim_bar: 1;
126 unsigned short delim_under: 1;
130 struct SPF_data_cidr_struct
153 #define PREFIX_PASS SPF_RESULT_PASS
154 #define PREFIX_FAIL SPF_RESULT_FAIL
155 #define PREFIX_SOFTFAIL SPF_RESULT_SOFTFAIL
156 #define PREFIX_NEUTRAL SPF_RESULT_NEUTRAL
157 #define PREFIX_UNKNOWN SPF_RESULT_PERMERROR
162 #define MECH_UNKNOWN 0
166 #define MECH_INCLUDE 4
169 #define MECH_EXISTS 7
171 #define MECH_REDIRECT 9
174 struct SPF_mech_struct
187 struct SPF_mod_struct
233 SPF_errcode_t SPF_record_find_mod_data(SPF_server_t *spf_server,
234 SPF_record_t *spf_record,
235 const char *mod_name,
239 SPF_request_t *spf_request,
240 SPF_response_t *spf_response,
241 SPF_record_t *spf_record,
242 const char *mod_name,
243 char **bufp,
size_t *buflenp);
247 SPF_response_t *spf_response,
248 SPF_record_t **spf_recordp,
251 SPF_response_t *spf_response,
252 SPF_macro_t **spf_macrop,
256 SPF_record_t *spf_record,
257 SPF_request_t *spf_request,
258 SPF_response_t *spf_response,
262 SPF_request_t *spf_request,
263 SPF_response_t *spf_response,
265 char **bufp,
size_t *buflenp);
269 char **bufp,
size_t *buflenp);
SPF_errcode_t SPF_record_compile_macro(SPF_server_t *spf_server, SPF_response_t *spf_response, SPF_macro_t **spf_macrop, const char *record)
void SPF_macro_free(SPF_macro_t *mac)
SPF_errcode_t SPF_record_expand_data(SPF_server_t *spf_server, SPF_request_t *spf_request, SPF_response_t *spf_response, SPF_data_t *data, size_t data_len, char **bufp, size_t *buflenp)
SPF_errcode_t SPF_record_stringify(SPF_record_t *spf_record, char **bufp, size_t *buflenp)
unsigned char num_dns_mech
SPF_errcode_t SPF_record_compile(SPF_server_t *spf_server, SPF_response_t *spf_response, SPF_record_t **spf_recordp, const char *record)
SPF_record_t * SPF_record_new(SPF_server_t *spf_server, const char *text)
SPF_errcode_t SPF_record_print(SPF_record_t *spf_record)
void SPF_record_free(SPF_record_t *rp)
SPF_errcode_t SPF_record_find_mod_value(SPF_server_t *spf_server, SPF_request_t *spf_request, SPF_response_t *spf_response, SPF_record_t *spf_record, const char *mod_name, char **bufp, size_t *buflenp)
SPF_server_t * spf_server
SPF_errcode_t SPF_record_interpret(SPF_record_t *spf_record, SPF_request_t *spf_request, SPF_response_t *spf_response, int depth)
unsigned char prefix_type