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 
89 } SPF_result_t;
90 
99 typedef
100 enum SPF_reason_enum {
108 } SPF_reason_t;
109 
118 typedef
119 enum SPF_errcode_t {
154 } SPF_errcode_t;
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 result
Definition: spf_response.h:175
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_errcode(SPF_response_t *rp)
Definition: spf_response.c:147
SPF_response_t * SPF_response_combine(SPF_response_t *main, SPF_response_t *r2mx)
Definition: spf_response.c:90
SPF_errcode_t SPF_error_code(SPF_error_t *err)
Definition: spf_response.c:314
SPF_record_t * spf_record_exp
Definition: spf_response.h:172
SPF_errcode_t SPF_response_add_warn(SPF_response_t *rp, SPF_errcode_t code, const char *format,...)
Definition: spf_response.c:282
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
SPF_response_t * SPF_response_new(SPF_request_t *spf_request)
Definition: spf_response.c:37
char * message
Definition: spf_response.h:160
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
const char * SPF_response_get_smtp_comment(SPF_response_t *rp)
Definition: spf_response.c:171
char SPF_error_errorp(SPF_error_t *err)
Definition: spf_response.c:326
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
unsigned short num_errors
Definition: spf_response.h:189
int main(int argc, char *argv[])
Definition: spf_example.c:114
SPF_errcode_t
Definition: spf_response.h:118
SPF_reason_t SPF_response_reason(SPF_response_t *rp)
Definition: spf_response.c:141
void SPF_response_free(SPF_response_t *rp)
Definition: spf_response.c:53
SPF_errcode_t code
Definition: spf_response.h:159
unsigned short errors_length
Definition: spf_response.h:188
const char * SPF_response_get_received_spf(SPF_response_t *rp)
Definition: spf_response.c:153
SPF_request_t * spf_request
Definition: spf_response.h:171
int SPF_response_warnings(SPF_response_t *rp)
Definition: spf_response.c:302
const char * SPF_response_get_explanation(SPF_response_t *rp)
Definition: spf_response.c:177
SPF_error_t * SPF_response_message(SPF_response_t *rp, int idx)
Definition: spf_response.c:308
const char * SPF_error_message(SPF_error_t *err)
Definition: spf_response.c:320
SPF_reason_t reason
Definition: spf_response.h:176
int SPF_response_messages(SPF_response_t *rp)
Definition: spf_response.c:290
SPF_errcode_t err
Definition: spf_response.h:177
SPF_reason_t
Definition: spf_response.h:99
SPF_error_t * errors
Definition: spf_response.h:186
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_result_t
Definition: spf_response.h:78
const char * SPF_response_get_header_comment(SPF_response_t *rp)
Definition: spf_response.c:165
int SPF_response_errors(SPF_response_t *rp)
Definition: spf_response.c:296
unsigned short errors_size
Definition: spf_response.h:187
SPF_result_t SPF_response_result(SPF_response_t *rp)
Definition: spf_response.c:135