libspf2 1.2.11
spf_request.h
Go to the documentation of this file.
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of either:
4 *
5 * a) The GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1, or (at your option) any
7 * later version,
8 *
9 * OR
10 *
11 * b) The two-clause BSD license.
12 *
13 * These licenses can be found with the distribution in the file LICENSES
14 */
15
16#ifndef INC_SPF_REQUEST
17#define INC_SPF_REQUEST
18
19typedef struct SPF_request_struct SPF_request_t;
20
21#include "spf_server.h"
22
24 /* Structure variables */
25 SPF_server_t *spf_server; /* The server. */
26
27 /* Input client-end variables */
28 int client_ver; /* AF_INET/AF_INET6 */
29 struct in_addr ipv4; /* client (sending) MTA IP addr */
30 struct in6_addr ipv6; /* client (sending) MTA IP addr */
31 char *env_from; /* envelope-from/MAIL FROM: */
32 char *helo_dom; /* domain name from HELO cmd */
33 char *rcpt_to_dom; /* RCPT TO: domain for 2mx */
34
35#if 0
36 /* Input server-end variables */
37 char *rec_dom; /* receiving MTA domain name */
38#endif
39
40 /* Per-request configuration variables */
43
44 /* State/derived variables */
45 char *env_from_lp; /* Local part of env_from */
46 char *env_from_dp; /* Domain part of env_from */
47 char *client_dom; /* Verified domain from client IP */
48
49 /* I'm not sure whether this should be in here. */
50 const char *cur_dom; /* "current domain" of SPF spec */
51};
52
53SPF_request_t *SPF_request_new(SPF_server_t *spf_server);
54void SPF_request_free(SPF_request_t *sr);
55SPF_errcode_t SPF_request_set_ipv4(SPF_request_t *sr,
56 struct in_addr addr);
57SPF_errcode_t SPF_request_set_ipv6(SPF_request_t *sr,
58 struct in6_addr addr);
60 const char *astr);
62 const char *astr);
64 const char *dom);
65int SPF_request_set_env_from(SPF_request_t *sr,
66 const char *from);
67const char *SPF_request_get_rec_dom(SPF_request_t *sr);
68
69const char *SPF_request_get_client_dom(SPF_request_t *sr);
70int SPF_request_is_loopback(SPF_request_t *sr);
71
72SPF_errcode_t SPF_request_query_mailfrom(SPF_request_t *spf_request,
73 SPF_response_t **spf_responsep);
74SPF_errcode_t SPF_request_query_rcptto(SPF_request_t *spf_request,
75 SPF_response_t **spf_responsep,
76 const char *rcpt_to);
77SPF_errcode_t SPF_request_query_fallback(SPF_request_t *spf_request,
78 SPF_response_t **spf_responsep,
79 const char *record);
80
81
82/* In spf_get_exp.c */
83SPF_errcode_t SPF_request_get_exp(SPF_server_t *spf_server,
84 SPF_request_t *spf_request,
85 SPF_response_t *spf_response,
86 SPF_record_t *spf_record,
87 char **bufp, size_t *buflenp);
88
89/* In spf_interpret.c - this is a kludge */
90
91SPF_errcode_t SPF_i_done(SPF_response_t *spf_response,
92 SPF_result_t result, SPF_reason_t reason,
93 SPF_errcode_t err);
94
95
96#endif
SPF_result_t
SPF_reason_t
SPF_errcode_t
SPF_request_t * SPF_request_new(SPF_server_t *spf_server)
Definition spf_request.c:41
SPF_errcode_t SPF_request_set_ipv6_str(SPF_request_t *sr, const char *astr)
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_set_ipv4(SPF_request_t *sr, struct in_addr addr)
Definition spf_request.c:71
int SPF_request_set_env_from(SPF_request_t *sr, const char *from)
SPF_errcode_t SPF_request_set_helo_dom(SPF_request_t *sr, const char *dom)
SPF_errcode_t SPF_request_set_ipv4_str(SPF_request_t *sr, const char *astr)
Definition spf_request.c:95
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 spf_get_exp.c:83
SPF_errcode_t SPF_i_done(SPF_response_t *spf_response, SPF_result_t result, SPF_reason_t reason, SPF_errcode_t err)
const char * SPF_request_get_client_dom(SPF_request_t *sr)
const char * SPF_request_get_rec_dom(SPF_request_t *sr)
int SPF_request_is_loopback(SPF_request_t *sr)
void SPF_request_free(SPF_request_t *sr)
Definition spf_request.c:59
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_mailfrom(SPF_request_t *spf_request, SPF_response_t **spf_responsep)
SPF_errcode_t SPF_request_set_ipv6(SPF_request_t *sr, struct in6_addr addr)
Definition spf_request.c:83
struct in6_addr ipv6
Definition spf_request.h:30
SPF_server_t * spf_server
Definition spf_request.h:25
struct in_addr ipv4
Definition spf_request.h:29
const char * cur_dom
Definition spf_request.h:50