libspf2  1.2.10
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 
78 typedef
79 enum SPF_result_enum {
85 
90 
99 typedef
100 enum SPF_reason_enum {
101  SPF_REASON_NONE = 0
109 
118 typedef
119 enum SPF_errcode_t {
120  SPF_E_SUCCESS = 0
155 
156 typedef
157 struct SPF_error_struct
158 {
160  char *message;
161  char is_error;
162 } SPF_error_t;
163 
164 typedef 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 
183  char *explanation;
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 
196 SPF_response_t *SPF_response_new(SPF_request_t *spf_request);
197 void SPF_response_free(SPF_response_t *rp);
198 SPF_response_t *SPF_response_combine(SPF_response_t *main,
199  SPF_response_t *r2mx);
200 
201  /* Query functions for elements of the result */
202 SPF_result_t SPF_response_result(SPF_response_t *rp);
203 SPF_reason_t SPF_response_reason(SPF_response_t *rp);
204 SPF_errcode_t SPF_response_errcode(SPF_response_t *rp);
205 const char *SPF_response_get_received_spf(SPF_response_t *rp);
206 const char *SPF_response_get_received_spf_value(SPF_response_t*rp);
207 const char *SPF_response_get_header_comment(SPF_response_t *rp);
208 const char *SPF_response_get_smtp_comment(SPF_response_t *rp);
209 const char *SPF_response_get_explanation(SPF_response_t *rp);
210 
212 int SPF_response_messages(SPF_response_t *rp);
214 int SPF_response_errors(SPF_response_t *rp);
216 int SPF_response_warnings(SPF_response_t *rp);
218 SPF_error_t *SPF_response_message(SPF_response_t *rp, int idx);
219 
221 const char * SPF_error_message(SPF_error_t *err);
222 char SPF_error_errorp(SPF_error_t *err);
223 
226 SPF_errcode_t SPF_response_add_error_ptr(SPF_response_t *rp,
227  SPF_errcode_t code,
228  const char *text, const char *tptr,
229  const char *format, ...);
230 SPF_errcode_t SPF_response_add_error_idx(SPF_response_t *rp,
231  SPF_errcode_t code,
232  const char *text, int idx,
233  const char *format, ...);
234 SPF_errcode_t SPF_response_add_error(SPF_response_t *rp,
235  SPF_errcode_t code,
236  const char *format, ...);
237 SPF_errcode_t SPF_response_add_warn_ptr(SPF_response_t *rp,
238  SPF_errcode_t code,
239  const char *text, const char *tptr,
240  const char *format, ...);
241 SPF_errcode_t SPF_response_add_warn_idx(SPF_response_t *rp,
242  SPF_errcode_t code,
243  const char *text, int idx,
244  const char *format, ...);
245 SPF_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
Definition: spf_response.h:79
@ SPF_RESULT_PERMERROR
Definition: spf_response.h:88
@ SPF_RESULT_NONE
Definition: spf_response.h:86
@ SPF_RESULT_INVALID
Definition: spf_response.h:80
@ SPF_RESULT_PASS
Definition: spf_response.h:82
@ SPF_RESULT_NEUTRAL
Definition: spf_response.h:81
@ SPF_RESULT_TEMPERROR
Definition: spf_response.h:87
@ SPF_RESULT_SOFTFAIL
Definition: spf_response.h:84
@ SPF_RESULT_FAIL
Definition: spf_response.h:83
const char * SPF_error_message(SPF_error_t *err)
Definition: spf_response.c:320
const char * SPF_response_get_header_comment(SPF_response_t *rp)
Definition: spf_response.c:165
SPF_errcode_t SPF_response_errcode(SPF_response_t *rp)
Definition: spf_response.c:147
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,...)
Definition: spf_response.c:264
SPF_errcode_t SPF_response_add_error_idx(SPF_response_t *rp, SPF_errcode_t code, const char *text, int idx, const char *format,...)
Definition: spf_response.c:247
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,...)
Definition: spf_response.c:238
SPF_error_t * SPF_response_message(SPF_response_t *rp, int idx)
Definition: spf_response.c:308
SPF_errcode_t SPF_response_add_warn(SPF_response_t *rp, SPF_errcode_t code, const char *format,...)
Definition: spf_response.c:282
int SPF_response_warnings(SPF_response_t *rp)
Definition: spf_response.c:302
SPF_errcode_t SPF_response_add_error(SPF_response_t *rp, SPF_errcode_t code, const char *format,...)
Definition: spf_response.c:256
const char * SPF_response_get_received_spf_value(SPF_response_t *rp)
Definition: spf_response.c:159
SPF_response_t * SPF_response_new(SPF_request_t *spf_request)
Definition: spf_response.c:37
const char * SPF_response_get_received_spf(SPF_response_t *rp)
Definition: spf_response.c:153
SPF_errcode_t SPF_response_add_warn_idx(SPF_response_t *rp, SPF_errcode_t code, const char *text, int idx, const char *format,...)
Definition: spf_response.c:273
void SPF_response_free(SPF_response_t *rp)
Definition: spf_response.c:53
SPF_response_t * SPF_response_combine(SPF_response_t *main, SPF_response_t *r2mx)
Definition: spf_response.c:90
int SPF_response_messages(SPF_response_t *rp)
Definition: spf_response.c:290
const char * SPF_response_get_explanation(SPF_response_t *rp)
Definition: spf_response.c:177
char SPF_error_errorp(SPF_error_t *err)
Definition: spf_response.c:326
SPF_errcode_t SPF_error_code(SPF_error_t *err)
Definition: spf_response.c:314
SPF_reason_t
Definition: spf_response.h:100
@ SPF_REASON_NONE
Definition: spf_response.h:101
@ SPF_REASON_2MX
Definition: spf_response.h:107
@ SPF_REASON_LOCALHOST
Definition: spf_response.h:103
@ SPF_REASON_FAILURE
Definition: spf_response.h:102
@ SPF_REASON_LOCAL_POLICY
Definition: spf_response.h:104
@ SPF_REASON_DEFAULT
Definition: spf_response.h:106
@ SPF_REASON_MECH
Definition: spf_response.h:105
SPF_errcode_t
Definition: spf_response.h:119
@ SPF_E_BIG_STRING
Definition: spf_response.h:135
@ SPF_E_BIG_DNS
Definition: spf_response.h:138
@ SPF_E_MECH_AFTER_ALL
Definition: spf_response.h:149
@ SPF_E_DNS_ERROR
Definition: spf_response.h:146
@ SPF_E_MOD_W_PREF
Definition: spf_response.h:124
@ SPF_E_UNKNOWN_MECH
Definition: spf_response.h:126
@ SPF_E_INVALID_CHAR
Definition: spf_response.h:125
@ SPF_E_INCLUDE_RETURNED_NONE
Definition: spf_response.h:151
@ SPF_E_SYNTAX
Definition: spf_response.h:123
@ SPF_E_RECURSIVE
Definition: spf_response.h:152
@ SPF_E_INVALID_IP6
Definition: spf_response.h:140
@ SPF_E_INTERNAL_ERROR
Definition: spf_response.h:130
@ SPF_E_INVALID_OPT
Definition: spf_response.h:127
@ SPF_E_BAD_HOST_TLD
Definition: spf_response.h:148
@ SPF_E_NOT_CONFIG
Definition: spf_response.h:145
@ SPF_E_NO_MEMORY
Definition: spf_response.h:121
@ SPF_E_INVALID_ESC
Definition: spf_response.h:131
@ SPF_E_BAD_HOST_IP
Definition: spf_response.h:147
@ SPF_E_INVALID_VAR
Definition: spf_response.h:132
@ SPF_E_BIG_SUBDOM
Definition: spf_response.h:133
@ SPF_E_UNINIT_VAR
Definition: spf_response.h:143
@ SPF_E_NOT_SPF
Definition: spf_response.h:122
@ SPF_E_INVALID_DELIM
Definition: spf_response.h:134
@ SPF_E_MISSING_OPT
Definition: spf_response.h:129
@ SPF_E_INVALID_IP4
Definition: spf_response.h:139
@ SPF_E_BIG_MECH
Definition: spf_response.h:136
@ SPF_E_INVALID_CIDR
Definition: spf_response.h:128
@ SPF_E_SUCCESS
Definition: spf_response.h:120
@ SPF_E_MULTIPLE_RECORDS
Definition: spf_response.h:153
@ SPF_E_RESULT_UNKNOWN
Definition: spf_response.h:142
@ SPF_E_INVALID_PREFIX
Definition: spf_response.h:141
@ SPF_E_BIG_MOD
Definition: spf_response.h:137
@ SPF_E_MOD_NOT_FOUND
Definition: spf_response.h:144
SPF_result_t SPF_response_result(SPF_response_t *rp)
Definition: spf_response.c:135
SPF_reason_t SPF_response_reason(SPF_response_t *rp)
Definition: spf_response.c:141
int SPF_response_errors(SPF_response_t *rp)
Definition: spf_response.c:296
const char * SPF_response_get_smtp_comment(SPF_response_t *rp)
Definition: spf_response.c:171
int main(int argc, char *argv[])
Definition: spf_example.c:114
SPF_errcode_t code
Definition: spf_response.h:159
char * message
Definition: spf_response.h:160
SPF_request_t * spf_request
Definition: spf_response.h:171
SPF_result_t result
Definition: spf_response.h:175
unsigned short errors_length
Definition: spf_response.h:188
unsigned short num_errors
Definition: spf_response.h:189
SPF_error_t * errors
Definition: spf_response.h:186
SPF_reason_t reason
Definition: spf_response.h:176
unsigned short errors_size
Definition: spf_response.h:187
SPF_record_t * spf_record_exp
Definition: spf_response.h:172
SPF_errcode_t err
Definition: spf_response.h:177