X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Flookups%2Fibase.c;h=72a27c0109388c5e5a0b34391730ca18a58309f2;hb=8f0d0a3138e138ffa6bcc94c8378f5eb22573f0e;hp=f08f503f0ea3432c43316537fbfe6d1e7695383b;hpb=f3ebb786e451da973560f1c9d8cdb151d25108b5;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/lookups/ibase.c b/src/src/lookups/ibase.c index f08f503f0..72a27c010 100644 --- a/src/src/lookups/ibase.c +++ b/src/src/lookups/ibase.c @@ -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