Transform string_append_listele{,_n}() to proper expanding-string triplet interface
[exim.git] / src / src / lookups / sqlite.c
index 5759c437ab27c2d8d9e19b436ea1f312664d434a..6e7b015bc8c0ee3c4720433cf5798a2630d97e6a 100644 (file)
@@ -1,10 +1,8 @@
-/* $Cambridge: exim/src/src/lookups/sqlite.c,v 1.5 2009/11/16 19:50:38 nm4 Exp $ */
-
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2015 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 #include "../exim.h"
@@ -57,7 +55,7 @@ int i;
 /* For second and subsequent results, insert \n */
 
 if (res->string != NULL)
-  res->string = string_cat(res->string, &res->size, &res->len, US"\n", 1);
+  res->string = string_catn(res->string, &res->size, &res->len, US"\n", 1);
 
 if (argc > 1)
   {
@@ -82,8 +80,8 @@ return 0;
 
 
 static int
-sqlite_find(void *handle, uschar *filename, uschar *query, int length,
-  uschar **result, uschar **errmsg, BOOL *do_cache)
+sqlite_find(void *handle, uschar *filename, const uschar *query, int length,
+  uschar **result, uschar **errmsg, uint *do_cache)
 {
 int ret;
 struct strbuf res = { NULL, 0, 0 };
@@ -95,7 +93,7 @@ if (ret != SQLITE_OK)
   return FAIL;
   }
 
-if (res.string == NULL) *do_cache = FALSE;
+if (res.string == NULL) *do_cache = 0;
 
 *result = res.string;
 return OK;
@@ -155,6 +153,27 @@ while ((c = *s++) != 0)
 return quoted;
 }
 
+
+
+/*************************************************
+*         Version reporting entry point          *
+*************************************************/
+
+/* See local README for interface description. */
+
+#include "../version.h"
+
+void
+sqlite_version_report(FILE *f)
+{
+fprintf(f, "Library version: SQLite: Compile: %s\n"
+           "                         Runtime: %s\n",
+        SQLITE_VERSION, sqlite3_libversion());
+#ifdef DYNLOOKUP
+fprintf(f, "                         Exim version %s\n", EXIM_VERSION_STR);
+#endif
+}
+
 static lookup_info _lookup_info = {
   US"sqlite",                    /* lookup name */
   lookup_absfilequery,           /* query-style lookup, starts with file name */
@@ -163,7 +182,8 @@ static lookup_info _lookup_info = {
   sqlite_find,                   /* find function */
   sqlite_close,                  /* close function */
   NULL,                          /* no tidy function */
-  sqlite_quote                   /* quoting function */
+  sqlite_quote,                  /* quoting function */
+  sqlite_version_report          /* version reporting */
 };
 
 #ifdef DYNLOOKUP