00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef INC_SPF_SERVER
00017 #define INC_SPF_SERVER
00018
00019 typedef struct SPF_server_struct SPF_server_t;
00020
00021 #include "spf_record.h"
00022 #include "spf_dns.h"
00023
00024 #ifndef SPF_MAX_DNS_MECH
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #define SPF_MAX_DNS_MECH 10
00041 #endif
00042 #ifndef SPF_MAX_DNS_PTR
00043
00044
00045
00046 #define SPF_MAX_DNS_PTR 10
00047 #endif
00048 #ifndef SPF_MAX_DNS_MX
00049
00050
00051
00052 #define SPF_MAX_DNS_MX 10
00053 #endif
00054
00055 struct SPF_server_struct {
00056 SPF_dns_server_t*resolver;
00057 SPF_record_t *local_policy;
00058 SPF_macro_t *explanation;
00060 char *rec_dom;
00062 int max_dns_mech;
00063 int max_dns_ptr;
00064 int max_dns_mx;
00066 int sanitize;
00067 int debug;
00068 int destroy_resolver;
00069 };
00070
00071 typedef
00072 enum SPF_server_dnstype_enum {
00073 SPF_DNS_RESOLV, SPF_DNS_CACHE, SPF_DNS_ZONE
00074 } SPF_server_dnstype_t;
00075
00076 SPF_server_t *SPF_server_new(SPF_server_dnstype_t dnstype,int debug);
00077 SPF_server_t *SPF_server_new_dns(SPF_dns_server_t *dns,int debug);
00078 void SPF_server_free(SPF_server_t *sp);
00079 SPF_errcode_t SPF_server_set_rec_dom(SPF_server_t *sp,
00080 const char *dom);
00081 SPF_errcode_t SPF_server_set_sanitize(SPF_server_t *sp,
00082 int sanitize);
00083 SPF_errcode_t SPF_server_set_explanation(SPF_server_t *sp,
00084 const char *exp, SPF_response_t **spf_responsep);
00085 SPF_errcode_t SPF_server_set_localpolicy(SPF_server_t *sp,
00086 const char *policy, int use_default_whitelist,
00087 SPF_response_t **spf_responsep);
00088
00089 SPF_errcode_t SPF_server_get_record(SPF_server_t *spf_server,
00090 SPF_request_t *spf_request,
00091 SPF_response_t *spf_response,
00092 SPF_record_t **spf_recordp);
00093
00097 #define SPF_DECL_ACCESS_INT(f) \
00098 SPF_errcode_t \
00099 SPF_server_set_ ## f(SPF_server_t *spf_server, int n); \
00100 int \
00101 SPF_server_get_ ## f(SPF_server_t *spf_server);
00102
00103 SPF_DECL_ACCESS_INT(max_dns_mech);
00104 SPF_DECL_ACCESS_INT(max_dns_ptr);
00105 SPF_DECL_ACCESS_INT(max_dns_mx);
00106
00107 #endif