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 SPF_request_t *SPF_request_new(SPF_server_t *spf_server);
00054 void SPF_request_free(SPF_request_t *sr);
00055 SPF_errcode_t SPF_request_set_ipv4(SPF_request_t *sr,
00056 struct in_addr addr);
00057 SPF_errcode_t SPF_request_set_ipv6(SPF_request_t *sr,
00058 struct in6_addr addr);
00059 SPF_errcode_t SPF_request_set_ipv4_str(SPF_request_t *sr,
00060 const char *astr);
00061 SPF_errcode_t SPF_request_set_ipv6_str(SPF_request_t *sr,
00062 const char *astr);
00063 SPF_errcode_t SPF_request_set_helo_dom(SPF_request_t *sr,
00064 const char *dom);
00065 int SPF_request_set_env_from(SPF_request_t *sr,
00066 const char *from);
00067 const char *SPF_request_get_rec_dom(SPF_request_t *sr);
00068
00069 const char *SPF_request_get_client_dom(SPF_request_t *sr);
00070 int SPF_request_is_loopback(SPF_request_t *sr);
00071
00072 SPF_errcode_t SPF_request_query_mailfrom(SPF_request_t *spf_request,
00073 SPF_response_t **spf_responsep);
00074 SPF_errcode_t SPF_request_query_rcptto(SPF_request_t *spf_request,
00075 SPF_response_t **spf_responsep,
00076 const char *rcpt_to);
00077 SPF_errcode_t SPF_request_query_fallback(SPF_request_t *spf_request,
00078 SPF_response_t **spf_responsep,
00079 const char *record);
00080
00081
00082
00083 SPF_errcode_t SPF_request_get_exp(SPF_server_t *spf_server,
00084 SPF_request_t *spf_request,
00085 SPF_response_t *spf_response,
00086 SPF_record_t *spf_record,
00087 char **bufp, size_t *buflenp);
00088
00089
00090
00091 SPF_errcode_t SPF_i_done(SPF_response_t *spf_response,
00092 SPF_result_t result, SPF_reason_t reason,
00093 SPF_errcode_t err);
00094
00095
00096 #endif