Tidying: coverity issues
[exim.git] / src / src / lookups / cdb.c
index 6e8b88790a77956090b8eb78bb05ddfc3a8acd51..4ff42ab3e69154ae57cec6ac5893c06430bfeacb 100644 (file)
@@ -1,5 +1,3 @@
-/* $Cambridge: exim/src/src/lookups/cdb.c,v 1.3 2005/06/27 14:29:44 ph10 Exp $ */
-
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
@@ -20,6 +18,9 @@
  *   Changed over to using unsigned chars
  *   Makes use of lf_check_file() for file checking
  * --------------------------------------------------------------
+ * Modified by The Exim Maintainers 2015:
+ *   const propagation
+ * --------------------------------------------------------------
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -93,7 +94,7 @@ typedef unsigned int uint32;
  * Internal function to make hash value */
 
 static uint32
-cdb_hash(uschar *buf, unsigned int len)
+cdb_hash(const uschar *buf, unsigned int len)
 {
   uint32 h;
 
@@ -274,11 +275,11 @@ cdb_check(void *handle,
 static int
 cdb_find(void *handle,
         uschar *filename,
-        uschar *keystring,
+        const uschar *keystring,
         int  key_len,
         uschar **result,
         uschar **errmsg,
-        BOOL *do_cache)
+        uint *do_cache)
 {
   struct cdb_state * cdbp = handle;
   uint32 item_key_len,
@@ -297,7 +298,7 @@ cdb_find(void *handle,
   /* Keep picky compilers happy */
   do_cache = do_cache;
 
-  key_hash = cdb_hash((uschar *)keystring, key_len);
+  key_hash = cdb_hash(keystring, key_len);
 
   hash_offset_entry = CDB_HASH_ENTRY * (key_hash & CDB_HASH_MASK);
   hash_offset = cdb_unpack(cdbp->cdb_offsets + hash_offset_entry);
@@ -435,6 +436,25 @@ struct cdb_state * cdbp = handle;
  (void)close(cdbp->fileno);
 }
 
+
+
+/*************************************************
+*         Version reporting entry point          *
+*************************************************/
+
+/* See local README for interface description. */
+
+#include "../version.h"
+
+void
+cdb_version_report(FILE *f)
+{
+#ifdef DYNLOOKUP
+fprintf(f, "Library version: CDB: Exim version %s\n", EXIM_VERSION_STR);
+#endif
+}
+
+
 lookup_info cdb_lookup_info = {
   US"cdb",                       /* lookup name */
   lookup_absfile,                /* uses absolute file name */
@@ -443,7 +463,8 @@ lookup_info cdb_lookup_info = {
   cdb_find,                      /* find function */
   cdb_close,                     /* close function */
   NULL,                          /* no tidy function */
-  NULL                           /* no quoting function */
+  NULL,                          /* no quoting function */
+  cdb_version_report             /* version reporting */
 };
 
 #ifdef DYNLOOKUP