#include "spf_sys_config.h"
#include "spf.h"
#include "spf_response.h"
#include "spf_record.h"
#include "spf_server.h"
#include "spf_dns.h"
#include "spf_dns_resolv.h"
#include "spf_dns_cache.h"
#include "spf_dns_zone.h"
#include "spf_internal.h"
#include "spf_dns_internal.h"
Go to the source code of this file.
Defines | |
#define | HOST_NAME_MAX 255 |
#define | SPF_ACCESS_INT(f) |
Functions | |
__attribute__ ((warn_unused_result)) | |
SPF_server_t * | SPF_server_new (SPF_server_dnstype_t dnstype, int debug) |
SPF_server_t * | SPF_server_new_dns (SPF_dns_server_t *dns, int debug) |
void | SPF_server_free (SPF_server_t *sp) |
SPF_errcode_t | SPF_server_set_rec_dom (SPF_server_t *sp, const char *dom) |
SPF_errcode_t | SPF_server_set_sanitize (SPF_server_t *sp, int sanitize) |
SPF_errcode_t | SPF_server_set_explanation (SPF_server_t *sp, const char *exp, SPF_response_t **spf_responsep) |
SPF_errcode_t | SPF_server_set_localpolicy (SPF_server_t *sp, const char *policy, int use_default_whitelist, SPF_response_t **spf_responsep) |
SPF_errcode_t | SPF_server_get_record (SPF_server_t *spf_server, SPF_request_t *spf_request, SPF_response_t *spf_response, SPF_record_t **spf_recordp) |
SPF_ACCESS_INT (max_dns_mech) | |
SPF_ACCESS_INT (max_dns_ptr) | |
SPF_ACCESS_INT (max_dns_mx) |
#define HOST_NAME_MAX 255 |
#define SPF_ACCESS_INT | ( | f | ) |
Value:
SPF_errcode_t SPF_server_set_ ## f(SPF_server_t *s, int n) { s->f = n; return SPF_E_SUCCESS; } int SPF_server_get_ ## f(SPF_server_t *s) { return s->f; }
The user is permitted to override the maximums.
Definition at line 488 of file spf_server.c.
__attribute__ | ( | (warn_unused_result) | ) |
Definition at line 66 of file spf_server.c.
References HOST_NAME_MAX, SPF_E_INTERNAL_ERROR, SPF_E_NO_MEMORY, and SPF_E_SUCCESS.
SPF_ACCESS_INT | ( | max_dns_mx | ) |
SPF_ACCESS_INT | ( | max_dns_ptr | ) |
SPF_ACCESS_INT | ( | max_dns_mech | ) |
The return values from these getter functions are used without modification. If you set a value higher than the specified maximum, it will be used. Beware.
void SPF_server_free | ( | SPF_server_t * | sp | ) |
This function destroys the DNS layer as well. If the (custom) DNS layer has no destructor, then this cannot and does not destroy it.
Definition at line 200 of file spf_server.c.
References SPF_server_struct::destroy_resolver, SPF_server_struct::explanation, SPF_server_struct::local_policy, SPF_server_struct::rec_dom, SPF_server_struct::resolver, SPF_dns_free(), SPF_macro_free(), and SPF_record_free().
Referenced by main().
SPF_errcode_t SPF_server_get_record | ( | SPF_server_t * | spf_server, | |
SPF_request_t * | spf_request, | |||
SPF_response_t * | spf_response, | |||
SPF_record_t ** | spf_recordp | |||
) |
Definition at line 316 of file spf_server.c.
References SPF_request_struct::cur_dom, SPF_server_struct::debug, SPF_dns_server_struct::get_spf, SPF_dns_rr_t::herrno, HOST_NOT_FOUND, NETDB_SUCCESS, NO_DATA, NO_RECOVERY, ns_t_spf, ns_t_txt, NULL, SPF_dns_rr_t::num_rr, SPF_response_struct::reason, SPF_server_struct::resolver, SPF_response_struct::result, SPF_dns_rr_t::rr, SPF_ASSERT_NOTNULL, SPF_debugf, SPF_dns_lookup(), SPF_dns_rr_free(), SPF_E_DNS_ERROR, SPF_E_MULTIPLE_RECORDS, SPF_E_NOT_SPF, SPF_E_SUCCESS, SPF_REASON_FAILURE, SPF_record_compile(), SPF_response_add_error(), SPF_RESULT_NONE, SPF_RESULT_PERMERROR, SPF_VER_STR, strncasecmp(), TRUE, TRY_AGAIN, and SPF_dns_rr_data_t::txt.
Referenced by SPF_record_interpret(), and SPF_request_query_mailfrom().
SPF_server_t* SPF_server_new | ( | SPF_server_dnstype_t | dnstype, | |
int | debug | |||
) |
Definition at line 132 of file spf_server.c.
References SPF_server_struct::destroy_resolver, NULL, SPF_server_struct::resolver, SPF_DNS_CACHE, SPF_dns_cache_new(), SPF_DNS_RESOLV, SPF_dns_resolv_new(), SPF_DNS_ZONE, SPF_dns_zone_new(), SPF_error, and SPF_errorf.
Referenced by main().
SPF_server_t* SPF_server_new_dns | ( | SPF_dns_server_t * | dns, | |
int | debug | |||
) |
Definition at line 180 of file spf_server.c.
References SPF_server_struct::destroy_resolver, and SPF_server_struct::resolver.
SPF_errcode_t SPF_server_set_explanation | ( | SPF_server_t * | sp, | |
const char * | exp, | |||
SPF_response_t ** | spf_responsep | |||
) |
Definition at line 235 of file spf_server.c.
References SPF_server_struct::explanation, NULL, SPF_ASSERT_NOTNULL, SPF_E_NO_MEMORY, SPF_E_SUCCESS, SPF_macro_free(), SPF_record_compile_macro(), SPF_response_add_error(), and SPF_response_new().
Referenced by main().
SPF_errcode_t SPF_server_set_localpolicy | ( | SPF_server_t * | sp, | |
const char * | policy, | |||
int | use_default_whitelist, | |||
SPF_response_t ** | spf_responsep | |||
) |
Definition at line 267 of file spf_server.c.
References SPF_server_struct::local_policy, NULL, SPF_ASSERT_NOTNULL, SPF_DEFAULT_WHITELIST, SPF_E_NO_MEMORY, SPF_E_SUCCESS, SPF_record_compile(), SPF_record_free(), SPF_response_add_error(), SPF_response_new(), and SPF_VER_STR.
Referenced by main().
SPF_errcode_t SPF_server_set_rec_dom | ( | SPF_server_t * | sp, | |
const char * | dom | |||
) |
Definition at line 215 of file spf_server.c.
References NULL, SPF_server_struct::rec_dom, SPF_E_NO_MEMORY, and SPF_E_SUCCESS.
Referenced by main().
SPF_errcode_t SPF_server_set_sanitize | ( | SPF_server_t * | sp, | |
int | sanitize | |||
) |
Definition at line 228 of file spf_server.c.
References SPF_server_struct::sanitize, and SPF_E_SUCCESS.
Referenced by main().