-/* $Cambridge: exim/src/src/lookups/spf.c,v 1.1 2005/05/25 20:07:55 tom Exp $ */
-
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
#else
#include "lf_functions.h"
-#include "spf.h"
+#ifndef HAVE_NS_TYPE
+#define HAVE_NS_TYPE
+#endif
#include <spf2/spf.h>
#include <spf2/spf_dns_resolv.h>
#include <spf2/spf_dns_cache.h>
-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) {
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;
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;
}
return OK;
}
+
+/*************************************************
+* Version reporting entry point *
+*************************************************/
+
+/* See local README for interface description. */
+
+#include "../version.h"
+
+void
+spf_version_report(FILE *f)
+{
+#ifdef DYNLOOKUP
+fprintf(f, "Library version: SPF: Exim version %s\n", EXIM_VERSION_STR);
+#endif
+}
+
+
+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 */
+ spf_version_report /* version reporting */
+};
+
+#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 */