X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/1e1ddfac79fbcd052f199500a6493c7f79cb8462..d954f4b2539fb156ff85edb45eddcfb03fa45d79:/src/src/drtables.c diff --git a/src/src/drtables.c b/src/src/drtables.c index 0ca369cfc..a4958b179 100644 --- a/src/src/drtables.c +++ b/src/src/drtables.c @@ -3,7 +3,7 @@ *************************************************/ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 */ +/* Copyright (c) The Exim Maintainers 2020 - 2021 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -602,7 +602,7 @@ extern lookup_module_info pgsql_lookup_module_info; #if defined(LOOKUP_REDIS) && LOOKUP_REDIS!=2 extern lookup_module_info redis_lookup_module_info; #endif -#if defined(EXPERIMENTAL_LMDB) +#if defined(LOOKUP_LMDB) extern lookup_module_info lmdb_lookup_module_info; #endif #if defined(SUPPORT_SPF) @@ -698,7 +698,7 @@ addlookupmodule(NULL, &pgsql_lookup_module_info); addlookupmodule(NULL, &redis_lookup_module_info); #endif -#ifdef EXPERIMENTAL_LMDB +#ifdef LOOKUP_LMDB addlookupmodule(NULL, &lmdb_lookup_module_info); #endif @@ -728,15 +728,15 @@ if (!(dd = exim_opendir(LOOKUP_MODULE_DIR))) } else { - const pcre *regex_islookupmod = regex_must_compile( + const pcre2_code *regex_islookupmod = regex_must_compile( US"\\." DYNLIB_FN_EXT "$", FALSE, TRUE); DEBUG(D_lookup) debug_printf("Loading lookup modules from %s\n", LOOKUP_MODULE_DIR); while ((ent = readdir(dd))) { - char *name = ent->d_name; + char * name = ent->d_name; int len = (int)strlen(name); - if (pcre_exec(regex_islookupmod, NULL, name, len, 0, PCRE_EOPT, NULL, 0) >= 0) + if (regex_match(regex_islookupmod, US name, len, NUL)) { int pathnamelen = len + (int)strlen(LOOKUP_MODULE_DIR) + 2; void *dl; @@ -764,10 +764,10 @@ else } /* FreeBSD nsdispatch() can trigger dlerror() errors about - * _nss_cache_cycle_prevention_function; we need to clear the dlerror() - * state before calling dlsym(), so that any error afterwards only - * comes from dlsym(). - */ + _nss_cache_cycle_prevention_function; we need to clear the dlerror() + state before calling dlsym(), so that any error afterwards only comes + from dlsym(). */ + errormsg = dlerror(); info = (struct lookup_module_info*) dlsym(dl, "_lookup_module_info");