]> git.netwichtig.de Git - user/henk/code/exim.git/blobdiff - src/src/lookups/ibase.c
DCC: fix loop expression
[user/henk/code/exim.git] / src / src / lookups / ibase.c
index f08f503f0ea3432c43316537fbfe6d1e7695383b..72a27c0109388c5e5a0b34391730ca18a58309f2 100644 (file)
@@ -3,6 +3,7 @@
 *************************************************/
 
 /* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim Maintainers 2020 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 /* The code in this module was contributed by Ard Biesheuvel. */
@@ -31,9 +32,9 @@ static ibase_connection *ibase_connections = NULL;
 
 /* See local README for interface description. */
 
-static void *ibase_open(uschar * filename, uschar ** errmsg)
+static void *ibase_open(const uschar * filename, uschar ** errmsg)
 {
-    return (void *) (1);        /* Just return something non-null */
+return (void *) (1);        /* Just return something non-null */
 }
 
 
@@ -450,33 +451,27 @@ arguments are not used. Loop through a list of servers while the query is
 deferred with a retryable error. */
 
 static int
-ibase_find(void *handle, uschar * filename, uschar * query, int length,
-           uschar ** result, uschar ** errmsg, uint *do_cache)
+ibase_find(void * handle, const uschar * filename, uschar * query, int length,
+  uschar ** result, uschar ** errmsg, uint * do_cache, const uschar * opts)
 {
-    int sep = 0;
-    uschar *server;
-    uschar *list = ibase_servers;
-    uschar buffer[512];
-
-    /* Keep picky compilers happy */
-    do_cache = do_cache;
-
-    DEBUG(D_lookup) debug_printf_indent("Interbase query: %s\n", query);
-
-    while ((server =
-            string_nextinlist(&list, &sep, buffer,
-                              sizeof(buffer))) != NULL) {
-        BOOL defer_break = FALSE;
-        int rc = perform_ibase_search(query, server, result, errmsg,
-                                      &defer_break);
-        if (rc != DEFER || defer_break)
-            return rc;
-    }
+int sep = 0;
+uschar *server;
+uschar *list = ibase_servers;
 
-    if (ibase_servers == NULL)
-        *errmsg = US "no Interbase servers defined (ibase_servers option)";
+DEBUG(D_lookup) debug_printf_indent("Interbase query: %s\n", query);
 
-    return DEFER;
+while ((server = string_nextinlist(&list, &sep, NULL, 0)))
+  {
+  BOOL defer_break = FALSE;
+  int rc = perform_ibase_search(query, server, result, errmsg, &defer_break);
+  if (rc != DEFER || defer_break)
+    return rc;
+  }
+
+if (!ibase_servers)
+  *errmsg = US "no Interbase servers defined (ibase_servers option)";
+
+return DEFER;
 }
 
 
@@ -563,15 +558,15 @@ fprintf(f, "Library version: ibase: Exim version %s\n", EXIM_VERSION_STR);
 
 
 static lookup_info _lookup_info = {
-  US"ibase",                     /* lookup name */
-  lookup_querystyle,             /* query-style lookup */
-  ibase_open,                    /* open function */
-  NULL,                          /* no check function */
-  ibase_find,                    /* find function */
-  NULL,                          /* no close function */
-  ibase_tidy,                    /* tidy function */
-  ibase_quote,                   /* quoting function */
-  ibase_version_report           /* version reporting */
+  .name = US"ibase",                   /* lookup name */
+  .type = lookup_querystyle,           /* query-style lookup */
+  .open = ibase_open,                  /* open function */
+  .check NULL,                         /* no check function */
+  .find = ibase_find,                  /* find function */
+  .close = NULL,                       /* no close function */
+  .tidy = ibase_tidy,                  /* tidy function */
+  .quote = ibase_quote,                        /* quoting function */
+  .version_report = ibase_version_report           /* version reporting */
 };
 
 #ifdef DYNLOOKUP