spf_request.h File Reference

#include "spf_server.h"

Include dependency graph for spf_request.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SPF_request_struct

Typedefs

typedef struct SPF_request_struct SPF_request_t

Functions

SPF_request_tSPF_request_new (SPF_server_t *spf_server)
void SPF_request_free (SPF_request_t *sr)
SPF_errcode_t SPF_request_set_ipv4 (SPF_request_t *sr, struct in_addr addr)
SPF_errcode_t SPF_request_set_ipv6 (SPF_request_t *sr, struct in6_addr addr)
SPF_errcode_t SPF_request_set_ipv4_str (SPF_request_t *sr, const char *astr)
SPF_errcode_t SPF_request_set_ipv6_str (SPF_request_t *sr, const char *astr)
SPF_errcode_t SPF_request_set_helo_dom (SPF_request_t *sr, const char *dom)
int SPF_request_set_env_from (SPF_request_t *sr, const char *from)
const char * SPF_request_get_rec_dom (SPF_request_t *sr)
const char * SPF_request_get_client_dom (SPF_request_t *sr)
int SPF_request_is_loopback (SPF_request_t *sr)
SPF_errcode_t SPF_request_query_mailfrom (SPF_request_t *spf_request, SPF_response_t **spf_responsep)
SPF_errcode_t SPF_request_query_rcptto (SPF_request_t *spf_request, SPF_response_t **spf_responsep, const char *rcpt_to)
SPF_errcode_t SPF_request_query_fallback (SPF_request_t *spf_request, SPF_response_t **spf_responsep, const char *record)
SPF_errcode_t SPF_request_get_exp (SPF_server_t *spf_server, SPF_request_t *spf_request, SPF_response_t *spf_response, SPF_record_t *spf_record, char **bufp, size_t *buflenp)
SPF_errcode_t SPF_i_done (SPF_response_t *spf_response, SPF_result_t result, SPF_reason_t reason, SPF_errcode_t err)


Typedef Documentation

typedef struct SPF_request_struct SPF_request_t

Definition at line 19 of file spf_request.h.


Function Documentation

SPF_errcode_t SPF_i_done ( SPF_response_t spf_response,
SPF_result_t  result,
SPF_reason_t  reason,
SPF_errcode_t  err 
)

This must be called with EITHER spf_response->spf_record_exp != NULL OR result in { SPF_RESULT_PASS SPF_RESULT_INVALID SPF_RESULT_TEMPERROR SPF_RESULT_PERMERROR } or the library will abort when it tries to generate an explanation.

Definition at line 388 of file spf_interpret.c.

References SPF_response_struct::err, SPF_response_struct::reason, SPF_response_struct::result, SPF_ASSERT_NOTNULL, SPF_response_struct::spf_request, and SPF_request_struct::spf_server.

Referenced by SPF_request_query_fallback(), SPF_request_query_mailfrom(), and SPF_request_query_rcptto().

void SPF_request_free ( SPF_request_t sr  ) 

Definition at line 59 of file spf_request.c.

References SPF_request_struct::client_dom, SPF_request_struct::env_from, SPF_request_struct::env_from_dp, SPF_request_struct::env_from_lp, SPF_request_struct::helo_dom, SPF_ASSERT_NOTNULL, and SPF_FREE.

Referenced by main().

const char* SPF_request_get_client_dom ( SPF_request_t sr  ) 

Definition at line 196 of file spf_request.c.

References SPF_request_struct::client_dom, NULL, SPF_server_struct::resolver, SPF_ASSERT_NOTNULL, SPF_dns_get_client_dom(), and SPF_request_struct::spf_server.

Referenced by SPF_record_expand_data().

Here is the call graph for this function:

SPF_errcode_t SPF_request_get_exp ( SPF_server_t spf_server,
SPF_request_t spf_request,
SPF_response_t spf_response,
SPF_record_t spf_record,
char **  bufp,
size_t *  buflenp 
)

Definition at line 83 of file spf_get_exp.c.

References SPF_request_struct::cur_dom, SPF_dns_server_struct::get_exp, SPF_dns_rr_t::herrno, HOST_NOT_FOUND, SPF_macro_struct::macro_len, NETDB_SUCCESS, NO_DATA, ns_t_txt, NULL, SPF_dns_rr_t::num_rr, SPF_server_struct::resolver, RETURN_DEFAULT_EXP, SPF_dns_rr_t::rr, SPF_ASSERT_NOTNULL, SPF_dns_lookup(), SPF_dns_rr_free(), SPF_E_NOT_CONFIG, SPF_E_NOT_SPF, SPF_E_SUCCESS, SPF_EXP_MOD_NAME, SPF_macro_free(), SPF_record_compile_macro(), SPF_record_expand_data(), SPF_record_find_mod_value(), SPF_response_add_warn(), SPF_warning, TRUE, TRY_AGAIN, and SPF_dns_rr_data_t::txt.

Here is the call graph for this function:

const char* SPF_request_get_rec_dom ( SPF_request_t sr  ) 

Definition at line 131 of file spf_request.c.

References SPF_server_struct::rec_dom, and SPF_request_struct::spf_server.

Referenced by SPF_record_expand_data().

int SPF_request_is_loopback ( SPF_request_t sr  ) 

Definition at line 212 of file spf_request.c.

References SPF_request_struct::client_ver, FALSE, SPF_request_struct::ipv4, SPF_request_struct::ipv6, and TRUE.

Referenced by SPF_record_interpret(), SPF_request_query_fallback(), SPF_request_query_mailfrom(), and SPF_request_query_rcptto().

SPF_request_t* SPF_request_new ( SPF_server_t spf_server  ) 

Definition at line 41 of file spf_request.c.

References SPF_request_struct::client_ver, SPF_request_struct::ipv4, SPF_request_struct::ipv6, and SPF_request_struct::spf_server.

Referenced by main().

SPF_errcode_t SPF_request_query_fallback ( SPF_request_t spf_request,
SPF_response_t **  spf_responsep,
const char *  record 
)

Definition at line 299 of file spf_request.c.

References SPF_ASSERT_NOTNULL, SPF_E_NO_MEMORY, SPF_E_SUCCESS, SPF_i_done(), SPF_REASON_LOCALHOST, SPF_record_compile(), SPF_request_is_loopback(), SPF_response_new(), SPF_RESULT_PASS, and SPF_request_struct::spf_server.

Referenced by main().

Here is the call graph for this function:

SPF_errcode_t SPF_request_query_mailfrom ( SPF_request_t spf_request,
SPF_response_t **  spf_responsep 
)

The big entry point.

Definition at line 269 of file spf_request.c.

References SPF_ASSERT_NOTNULL, SPF_E_NO_MEMORY, SPF_E_SUCCESS, SPF_i_done(), SPF_REASON_LOCALHOST, SPF_request_is_loopback(), SPF_response_new(), SPF_RESULT_PASS, SPF_request_struct::spf_server, and SPF_server_get_record().

Referenced by main().

Here is the call graph for this function:

SPF_errcode_t SPF_request_query_rcptto ( SPF_request_t spf_request,
SPF_response_t **  spf_responsep,
const char *  rcpt_to 
)

This replaces _2mx

build record as SPF_VER_STR " mx:%s" Set cur_dom to the rcpt_to domain. Query on the 'fixed' 2mx record. Clobber the primary result.

Definition at line 339 of file spf_request.c.

References SPF_request_struct::cur_dom, NULL, SPF_ASSERT_NOTNULL, SPF_E_NO_MEMORY, SPF_E_SUCCESS, SPF_i_done(), SPF_REASON_LOCALHOST, SPF_record_compile(), SPF_request_is_loopback(), SPF_response_new(), SPF_RESULT_PASS, SPF_request_struct::spf_server, and SPF_VER_STR.

Referenced by main().

Here is the call graph for this function:

int SPF_request_set_env_from ( SPF_request_t sr,
const char *  from 
)

Definition at line 139 of file spf_request.c.

References SPF_request_struct::env_from, SPF_request_struct::env_from_dp, SPF_request_struct::env_from_lp, SPF_request_struct::helo_dom, NULL, SPF_ASSERT_NOTNULL, SPF_E_NO_MEMORY, and SPF_FREE.

Referenced by main(), and SPF_request_set_helo_dom().

SPF_errcode_t SPF_request_set_helo_dom ( SPF_request_t sr,
const char *  dom 
)

Definition at line 117 of file spf_request.c.

References SPF_request_struct::env_from, SPF_request_struct::helo_dom, NULL, SPF_ASSERT_NOTNULL, SPF_E_NO_MEMORY, SPF_E_SUCCESS, SPF_FREE, and SPF_request_set_env_from().

Referenced by main().

Here is the call graph for this function:

SPF_errcode_t SPF_request_set_ipv4 ( SPF_request_t sr,
struct in_addr  addr 
)

Definition at line 71 of file spf_request.c.

References SPF_request_struct::client_dom, SPF_request_struct::client_ver, SPF_request_struct::ipv4, NULL, and SPF_E_SUCCESS.

Referenced by SPF_request_set_ipv4_str().

SPF_errcode_t SPF_request_set_ipv4_str ( SPF_request_t sr,
const char *  astr 
)

Definition at line 95 of file spf_request.c.

References NULL, SPF_E_INVALID_IP4, and SPF_request_set_ipv4().

Referenced by main().

Here is the call graph for this function:

SPF_errcode_t SPF_request_set_ipv6 ( SPF_request_t sr,
struct in6_addr  addr 
)

Definition at line 83 of file spf_request.c.

References SPF_request_struct::client_dom, SPF_request_struct::client_ver, SPF_request_struct::ipv6, NULL, and SPF_E_SUCCESS.

Referenced by SPF_request_set_ipv6_str().

SPF_errcode_t SPF_request_set_ipv6_str ( SPF_request_t sr,
const char *  astr 
)

Definition at line 106 of file spf_request.c.

References NULL, SPF_E_INVALID_IP6, and SPF_request_set_ipv6().

Referenced by main().

Here is the call graph for this function:


Generated on Tue Nov 4 13:27:47 2008 for libspf2 by  doxygen 1.5.4