string handling: strlen for gstring
[users/jgh/exim.git] / src / src / spf.h
index 5ff251b6d440b5f5b4bb51197d0e56c665c0b189..93df24b2c65e4f5fef1d980e89d1cec618baad97 100644 (file)
@@ -1,16 +1,21 @@
-/* $Cambridge: exim/src/src/spf.h,v 1.3 2005/02/17 11:58:26 ph10 Exp $ */
-
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
 /* Experimental SPF support.
    Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004
-   License: GPL */
+   License: GPL
+   Copyright (c) The Exim Maintainers 2016
+*/
 
-#ifdef EXPERIMENTAL_SPF
+#ifdef SUPPORT_SPF
 
+/* Yes, we do have ns_type. spf.h redefines it if we don't set this. Doh */
+#if !defined(HAVE_NS_TYPE) && defined(NS_INADDRSZ)
+# define HAVE_NS_TYPE
+#endif
 #include <spf2/spf.h>
+
 #include <spf2/spf_dns_resolv.h>
 #include <spf2/spf_dns_cache.h>
 
@@ -19,21 +24,15 @@ typedef struct spf_result_id {
   int    value;
 } spf_result_id;
 
-/* must be kept in numeric order */
-static spf_result_id spf_result_id_list[] = {
-  { US"pass", 0 },
-  { US"fail", 1 },
-  { US"softfail", 2 },
-  { US"neutral", 3 },
-  { US"err_perm", 4 },
-  { US"err_temp", 5 },
-  { US"none", 6 }
-};
-
-static int spf_result_id_list_size = sizeof(spf_result_id_list)/sizeof(spf_result_id);
-
 /* prototypes */
-int spf_init(uschar *,uschar *);
-int spf_process(uschar **, uschar *);
+void spf_lib_version_report(FILE *);
+BOOL spf_init(void);
+BOOL spf_conn_init(uschar *, uschar *);
+int  spf_process(const uschar **, uschar *, int);
+void spf_response_debug(SPF_response_t *);
+
+#define SPF_PROCESS_NORMAL  0
+#define SPF_PROCESS_GUESS   1
+#define SPF_PROCESS_FALLBACK    2
 
 #endif