[Buzilla 376] Preliminary DKIM support
[exim.git] / src / src / drtables.c
index e9084b2acaa5226f8ffcf26d122e3c681840d7b8..b95d4fc952a0f1ba72d13e8bad0823c82d1bcbb3 100644 (file)
@@ -1,10 +1,10 @@
-/* $Cambridge: exim/src/src/drtables.c,v 1.4 2005/05/25 20:07:55 tom Exp $ */
+/* $Cambridge: exim/src/src/drtables.c,v 1.9 2007/09/28 12:21:57 tom Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2005 */
+/* Copyright (c) University of Cambridge 1995 - 2007 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 
@@ -93,6 +93,10 @@ be NULL for methods that don't need them. */
 #include "lookups/spf.h"
 #endif
 
+#ifdef LOOKUP_SQLITE
+#include "lookups/sqlite.h"
+#endif
+
 #ifdef LOOKUP_TESTDB
 #include "lookups/testdb.h"
 #endif
@@ -101,6 +105,11 @@ be NULL for methods that don't need them. */
 #include "lookups/whoson.h"
 #endif
 
+#ifdef EXPERIMENTAL_DKIM
+#include "lookups/dkim.h"
+#endif
+
+
 /* The second field in each item below is a set of bit flags:
 
   lookup_querystyle     => this is a query-style lookup,
@@ -167,6 +176,23 @@ of the key strings. */
 #endif
   },
 
+/* DKIM lookups */
+
+  {
+  US"dkim",                      /* lookup name */
+  lookup_querystyle,             /* query style */
+#ifdef EXPERIMENTAL_DKIM
+  dkim_open,                     /* open function */
+  NULL,                          /* check function */
+  dkim_find,                     /* find function */
+  NULL,                          /* no close function */
+  NULL,                          /* no tidy function */
+  NULL                           /* no quoting function */
+#else
+  NULL, NULL, NULL, NULL, NULL, NULL /* lookup not present */
+#endif
+  },
+
 /* Using DNS TXT records as a database */
 
   {
@@ -458,6 +484,23 @@ Shares many functions with lsearch. */
 #endif
   },
 
+/* sqlite lookup */
+
+  {
+  US"sqlite",                    /* lookup name */
+  lookup_absfilequery,           /* query-style lookup, starts with file name */
+#ifdef LOOKUP_SQLITE
+  sqlite_open,                   /* open function */
+  NULL,                          /* no check function */
+  sqlite_find,                   /* find function */
+  sqlite_close,                  /* close function */
+  NULL,                          /* no tidy function */
+  sqlite_quote                   /* quoting function */
+#else
+  NULL, NULL, NULL, NULL, NULL, NULL /* lookup not present */
+#endif
+  },
+
 /* Testdb lookup is for testing Exim, not useful for normal running.
 For that reason, we omit the entry entirely when not building it into
 the binary, so that attempts to use it give "unknown lookup type" instead
@@ -530,6 +573,10 @@ set to NULL for those that are not compiled into the binary. */
 #include "auths/cyrus_sasl.h"
 #endif
 
+#ifdef AUTH_DOVECOT
+#include "auths/dovecot.h"
+#endif
+
 #ifdef AUTH_PLAINTEXT
 #include "auths/plaintext.h"
 #endif
@@ -568,6 +615,19 @@ auth_info auths_available[] = {
   },
 #endif
 
+#ifdef AUTH_DOVECOT
+  {
+  US"dovecot",                                /* lookup name */
+  auth_dovecot_options,
+  &auth_dovecot_options_count,
+  &auth_dovecot_option_defaults,
+  sizeof(auth_dovecot_options_block),
+  auth_dovecot_init,                          /* init function */
+  auth_dovecot_server,                        /* server function */
+  NULL                                        /* client function */
+  },
+#endif
+
 #ifdef AUTH_PLAINTEXT
   {
   US"plaintext",                             /* lookup name */