X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/92f1b1705a69394b944ea16aafbdb9d1351b3b81..e6d225ae6e6811d3c88dc201642a2127ff6c11bd:/src/src/lookups/spf.c diff --git a/src/src/lookups/spf.c b/src/src/lookups/spf.c index ba5cf6b69..2ca4bbab4 100644 --- a/src/src/lookups/spf.c +++ b/src/src/lookups/spf.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/lookups/spf.c,v 1.1 2005/05/25 20:07:55 tom Exp $ */ +/* $Cambridge: exim/src/src/lookups/spf.c,v 1.3 2009/11/11 14:43:28 nm4 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -24,12 +24,14 @@ static void dummy(int x) { dummy(x-1); } #else #include "lf_functions.h" -#include "spf.h" +#ifndef HAVE_NS_TYPE +#define HAVE_NS_TYPE +#endif #include #include #include -void *spf_open(uschar *filename, uschar **errmsg) { +static void *spf_open(uschar *filename, uschar **errmsg) { SPF_server_t *spf_server = NULL; spf_server = SPF_server_new(SPF_DNS_CACHE, 0); if (spf_server == NULL) { @@ -39,12 +41,12 @@ void *spf_open(uschar *filename, uschar **errmsg) { return (void *) spf_server; } -void spf_close(void *handle) { +static void spf_close(void *handle) { SPF_server_t *spf_server = handle; if (spf_server) SPF_server_free(spf_server); } -int spf_find(void *handle, uschar *filename, uschar *keystring, int key_len, +static int spf_find(void *handle, uschar *filename, uschar *keystring, int key_len, uschar **result, uschar **errmsg, BOOL *do_cache) { SPF_server_t *spf_server = handle; SPF_request_t *spf_request = NULL; @@ -56,11 +58,11 @@ int spf_find(void *handle, uschar *filename, uschar *keystring, int key_len, return FAIL; } - if (SPF_request_set_ipv4_str(spf_request, filename)) { + if (SPF_request_set_ipv4_str(spf_request, CS filename)) { *errmsg = string_sprintf("invalid IP address '%s'", filename); return FAIL; } - if (SPF_request_set_env_from(spf_request, keystring)) { + if (SPF_request_set_env_from(spf_request, CS keystring)) { *errmsg = string_sprintf("invalid envelope from address '%s'", keystring); return FAIL; } @@ -72,4 +74,22 @@ int spf_find(void *handle, uschar *filename, uschar *keystring, int key_len, return OK; } +static lookup_info _lookup_info = { + US"spf", /* lookup name */ + 0, /* not absfile, not query style */ + spf_open, /* open function */ + NULL, /* no check function */ + spf_find, /* find function */ + spf_close, /* close function */ + NULL, /* no tidy function */ + NULL /* no quoting function */ +}; + +#ifdef DYNLOOKUP +#define spf_lookup_module_info _lookup_module_info +#endif + +static lookup_info *_lookup_list[] = { &_lookup_info }; +lookup_module_info spf_lookup_module_info = { LOOKUP_MODULE_INFO_MAGIC, _lookup_list, 1 }; + #endif /* EXPERIMENTAL_SPF */