00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef INC_SPF_REQUEST
00017 #define INC_SPF_REQUEST
00018
00019 typedef struct SPF_request_struct SPF_request_t;
00020
00021 #include "spf_server.h"
00022
00023 struct SPF_request_struct {
00024
00025 SPF_server_t *spf_server;
00026
00027
00028 int client_ver;
00029 struct in_addr ipv4;
00030 struct in6_addr ipv6;
00031 char *env_from;
00032 char *helo_dom;
00033 char *rcpt_to_dom;
00034
00035 #if 0
00036
00037 char *rec_dom;
00038 #endif
00039
00040
00041 char use_local_policy;
00042 char use_helo;
00043
00044
00045 char *env_from_lp;
00046 char *env_from_dp;
00047 char *client_dom;
00048
00049
00050 const char *cur_dom;
00051
00052
00053 size_t max_var_len;
00054 };
00055
00056 SPF_request_t *SPF_request_new(SPF_server_t *spf_server);
00057 void SPF_request_free(SPF_request_t *sr);
00058 SPF_errcode_t SPF_request_set_ipv4(SPF_request_t *sr,
00059 struct in_addr addr);
00060 SPF_errcode_t SPF_request_set_ipv6(SPF_request_t *sr,
00061 struct in6_addr addr);
00062 SPF_errcode_t SPF_request_set_ipv4_str(SPF_request_t *sr,
00063 const char *astr);
00064 SPF_errcode_t SPF_request_set_ipv6_str(SPF_request_t *sr,
00065 const char *astr);
00066 SPF_errcode_t SPF_request_set_helo_dom(SPF_request_t *sr,
00067 const char *dom);
00068 int SPF_request_set_env_from(SPF_request_t *sr,
00069 const char *from);
00070 const char *SPF_request_get_rec_dom(SPF_request_t *sr);
00071
00072 const char *SPF_request_get_client_dom(SPF_request_t *sr);
00073 int SPF_request_is_loopback(SPF_request_t *sr);
00074
00075 SPF_errcode_t SPF_request_query_mailfrom(SPF_request_t *spf_request,
00076 SPF_response_t **spf_responsep);
00077 SPF_errcode_t SPF_request_query_rcptto(SPF_request_t *spf_request,
00078 SPF_response_t **spf_responsep,
00079 const char *rcpt_to);
00080 SPF_errcode_t SPF_request_query_fallback(SPF_request_t *spf_request,
00081 SPF_response_t **spf_responsep,
00082 const char *record);
00083
00084
00085
00086 SPF_errcode_t SPF_request_get_exp(SPF_server_t *spf_server,
00087 SPF_request_t *spf_request,
00088 SPF_response_t *spf_response,
00089 SPF_record_t *spf_record,
00090 char **bufp, size_t *buflenp);
00091
00092
00093
00094 SPF_errcode_t SPF_i_done(SPF_response_t *spf_response,
00095 SPF_result_t result, SPF_reason_t reason,
00096 SPF_errcode_t err);
00097
00098
00099 #endif