libspf2 1.2.11
spf_response.h
Go to the documentation of this file.
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of either:
4 *
5 * a) The GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1, or (at your option) any
7 * later version,
8 *
9 * OR
10 *
11 * b) The two-clause BSD license.
12 *
13 * These licenses can be found with the distribution in the file LICENSES
14 */
15
16#ifndef INC_SPF_RESPONSE
17#define INC_SPF_RESPONSE
18
78typedef
79enum SPF_result_enum {
85
90
99typedef
100enum SPF_reason_enum {
109
118typedef
119enum SPF_errcode_t {
120 SPF_E_SUCCESS = 0
155
156typedef
157struct SPF_error_struct
158{
160 char *message;
163
164typedef struct SPF_response_struct SPF_response_t;
165
166#include "spf.h"
167#include "spf_request.h"
168
170 /* Structure variables */
171 SPF_request_t *spf_request;
172 SPF_record_t *spf_record_exp;
173
174 /* The answer itself. */
178
184
185 /* The errors */
187 unsigned short errors_size;
188 unsigned short errors_length;
189 unsigned short num_errors;
191 /* Stuff which lets us get there. */
193};
194
195
196SPF_response_t *SPF_response_new(SPF_request_t *spf_request);
197void SPF_response_free(SPF_response_t *rp);
198SPF_response_t *SPF_response_combine(SPF_response_t *main,
199 SPF_response_t *r2mx);
200
201 /* Query functions for elements of the result */
202SPF_result_t SPF_response_result(SPF_response_t *rp);
203SPF_reason_t SPF_response_reason(SPF_response_t *rp);
204SPF_errcode_t SPF_response_errcode(SPF_response_t *rp);
205const char *SPF_response_get_received_spf(SPF_response_t *rp);
206const char *SPF_response_get_received_spf_value(SPF_response_t*rp);
207const char *SPF_response_get_header_comment(SPF_response_t *rp);
208const char *SPF_response_get_smtp_comment(SPF_response_t *rp);
209const char *SPF_response_get_explanation(SPF_response_t *rp);
210
212int SPF_response_messages(SPF_response_t *rp);
214int SPF_response_errors(SPF_response_t *rp);
216int SPF_response_warnings(SPF_response_t *rp);
218SPF_error_t *SPF_response_message(SPF_response_t *rp, int idx);
219
221const char * SPF_error_message(SPF_error_t *err);
223
227 SPF_errcode_t code,
228 const char *text, const char *tptr,
229 const char *format, ...);
231 SPF_errcode_t code,
232 const char *text, int idx,
233 const char *format, ...);
234SPF_errcode_t SPF_response_add_error(SPF_response_t *rp,
235 SPF_errcode_t code,
236 const char *format, ...);
238 SPF_errcode_t code,
239 const char *text, const char *tptr,
240 const char *format, ...);
242 SPF_errcode_t code,
243 const char *text, int idx,
244 const char *format, ...);
245SPF_errcode_t SPF_response_add_warn(SPF_response_t *rp,
246 SPF_errcode_t code,
247 const char *format, ...);
248
249#endif
SPF_result_t
@ SPF_RESULT_PERMERROR
@ SPF_RESULT_NONE
@ SPF_RESULT_INVALID
@ SPF_RESULT_PASS
@ SPF_RESULT_NEUTRAL
@ SPF_RESULT_TEMPERROR
@ SPF_RESULT_SOFTFAIL
@ SPF_RESULT_FAIL
const char * SPF_response_get_explanation(SPF_response_t *rp)
SPF_errcode_t SPF_response_errcode(SPF_response_t *rp)
const char * SPF_response_get_smtp_comment(SPF_response_t *rp)
const char * SPF_response_get_received_spf(SPF_response_t *rp)
const char * SPF_response_get_header_comment(SPF_response_t *rp)
SPF_errcode_t SPF_response_add_warn_ptr(SPF_response_t *rp, SPF_errcode_t code, const char *text, const char *tptr, const char *format,...)
SPF_response_t * SPF_response_new(SPF_request_t *spf_request)
SPF_errcode_t SPF_response_add_error_idx(SPF_response_t *rp, SPF_errcode_t code, const char *text, int idx, const char *format,...)
SPF_errcode_t SPF_response_add_error_ptr(SPF_response_t *rp, SPF_errcode_t code, const char *text, const char *tptr, const char *format,...)
SPF_errcode_t SPF_response_add_warn(SPF_response_t *rp, SPF_errcode_t code, const char *format,...)
int SPF_response_warnings(SPF_response_t *rp)
SPF_errcode_t SPF_response_add_error(SPF_response_t *rp, SPF_errcode_t code, const char *format,...)
SPF_errcode_t SPF_response_add_warn_idx(SPF_response_t *rp, SPF_errcode_t code, const char *text, int idx, const char *format,...)
void SPF_response_free(SPF_response_t *rp)
const char * SPF_error_message(SPF_error_t *err)
SPF_error_t * SPF_response_message(SPF_response_t *rp, int idx)
int SPF_response_messages(SPF_response_t *rp)
const char * SPF_response_get_received_spf_value(SPF_response_t *rp)
char SPF_error_errorp(SPF_error_t *err)
SPF_errcode_t SPF_error_code(SPF_error_t *err)
SPF_reason_t
@ SPF_REASON_NONE
@ SPF_REASON_2MX
@ SPF_REASON_LOCALHOST
@ SPF_REASON_FAILURE
@ SPF_REASON_LOCAL_POLICY
@ SPF_REASON_DEFAULT
@ SPF_REASON_MECH
SPF_response_t * SPF_response_combine(SPF_response_t *main, SPF_response_t *r2mx)
SPF_errcode_t
@ SPF_E_BIG_STRING
@ SPF_E_BIG_DNS
@ SPF_E_MECH_AFTER_ALL
@ SPF_E_DNS_ERROR
@ SPF_E_MOD_W_PREF
@ SPF_E_UNKNOWN_MECH
@ SPF_E_INVALID_CHAR
@ SPF_E_INCLUDE_RETURNED_NONE
@ SPF_E_SYNTAX
@ SPF_E_RECURSIVE
@ SPF_E_INVALID_IP6
@ SPF_E_INTERNAL_ERROR
@ SPF_E_INVALID_OPT
@ SPF_E_BAD_HOST_TLD
@ SPF_E_NOT_CONFIG
@ SPF_E_NO_MEMORY
@ SPF_E_INVALID_ESC
@ SPF_E_BAD_HOST_IP
@ SPF_E_INVALID_VAR
@ SPF_E_BIG_SUBDOM
@ SPF_E_UNINIT_VAR
@ SPF_E_NOT_SPF
@ SPF_E_INVALID_DELIM
@ SPF_E_MISSING_OPT
@ SPF_E_INVALID_IP4
@ SPF_E_BIG_MECH
@ SPF_E_INVALID_CIDR
@ SPF_E_SUCCESS
@ SPF_E_MULTIPLE_RECORDS
@ SPF_E_RESULT_UNKNOWN
@ SPF_E_INVALID_PREFIX
@ SPF_E_BIG_MOD
@ SPF_E_MOD_NOT_FOUND
SPF_result_t SPF_response_result(SPF_response_t *rp)
SPF_reason_t SPF_response_reason(SPF_response_t *rp)
int SPF_response_errors(SPF_response_t *rp)
int main(int argc, char *argv[])
SPF_errcode_t code
SPF_request_t * spf_request
SPF_result_t result
unsigned short errors_length
unsigned short num_errors
SPF_error_t * errors
SPF_reason_t reason
unsigned short errors_size
SPF_record_t * spf_record_exp
SPF_errcode_t err