X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/e6d225ae6e6811d3c88dc201642a2127ff6c11bd..3386088d5af4d4c61faa12ae29560e2c5bd43304:/src/src/lookups/lsearch.c diff --git a/src/src/lookups/lsearch.c b/src/src/lookups/lsearch.c index 5d6463802..3883d4ba0 100644 --- a/src/src/lookups/lsearch.c +++ b/src/src/lookups/lsearch.c @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/lookups/lsearch.c,v 1.11 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" @@ -73,7 +71,7 @@ fit into the fixed sized buffer. Most of the time this will never be exercised, but people do occasionally do weird things. */ static int -internal_lsearch_find(void *handle, uschar *filename, uschar *keystring, +internal_lsearch_find(void *handle, uschar *filename, const uschar *keystring, int length, uschar **result, uschar **errmsg, int type) { FILE *f = (FILE *)handle; @@ -148,7 +146,7 @@ for (last_was_eol = TRUE; uschar *t = s++; while (*s != 0 && *s != '\"') { - if (*s == '\\') *t++ = string_interpret_escape(&s); + if (*s == '\\') *t++ = string_interpret_escape(CUSS &s); else *t++ = *s; s++; } @@ -183,7 +181,7 @@ for (last_was_eol = TRUE; { int rc; int save = buffer[linekeylength]; - uschar *list = buffer; + const uschar *list = buffer; buffer[linekeylength] = 0; rc = match_isinlist(keystring, &list, @@ -324,7 +322,7 @@ return FAIL; /* See local README for interface description */ static int -lsearch_find(void *handle, uschar *filename, uschar *keystring, int length, +lsearch_find(void *handle, uschar *filename, const uschar *keystring, int length, uschar **result, uschar **errmsg, BOOL *do_cache) { do_cache = do_cache; /* Keep picky compilers happy */ @@ -341,7 +339,7 @@ return internal_lsearch_find(handle, filename, keystring, length, result, /* See local README for interface description */ static int -wildlsearch_find(void *handle, uschar *filename, uschar *keystring, int length, +wildlsearch_find(void *handle, uschar *filename, const uschar *keystring, int length, uschar **result, uschar **errmsg, BOOL *do_cache) { do_cache = do_cache; /* Keep picky compilers happy */ @@ -358,7 +356,7 @@ return internal_lsearch_find(handle, filename, keystring, length, result, /* See local README for interface description */ static int -nwildlsearch_find(void *handle, uschar *filename, uschar *keystring, int length, +nwildlsearch_find(void *handle, uschar *filename, const uschar *keystring, int length, uschar **result, uschar **errmsg, BOOL *do_cache) { do_cache = do_cache; /* Keep picky compilers happy */ @@ -376,7 +374,7 @@ return internal_lsearch_find(handle, filename, keystring, length, result, /* See local README for interface description */ static int -iplsearch_find(void *handle, uschar *filename, uschar *keystring, int length, +iplsearch_find(void *handle, uschar *filename, const uschar *keystring, int length, uschar **result, uschar **errmsg, BOOL *do_cache) { do_cache = do_cache; /* Keep picky compilers happy */ @@ -410,6 +408,25 @@ lsearch_close(void *handle) (void)fclose((FILE *)handle); } + + +/************************************************* +* Version reporting entry point * +*************************************************/ + +/* See local README for interface description. */ + +#include "../version.h" + +void +lsearch_version_report(FILE *f) +{ +#ifdef DYNLOOKUP +fprintf(f, "Library version: lsearch: Exim version %s\n", EXIM_VERSION_STR); +#endif +} + + static lookup_info iplsearch_lookup_info = { US"iplsearch", /* lookup name */ lookup_absfile, /* uses absolute file name */ @@ -418,7 +435,8 @@ static lookup_info iplsearch_lookup_info = { iplsearch_find, /* find function */ lsearch_close, /* close function */ NULL, /* no tidy function */ - NULL /* no quoting function */ + NULL, /* no quoting function */ + NULL /* no version reporting (redundant) */ }; static lookup_info lsearch_lookup_info = { @@ -429,7 +447,8 @@ static lookup_info lsearch_lookup_info = { lsearch_find, /* find function */ lsearch_close, /* close function */ NULL, /* no tidy function */ - NULL /* no quoting function */ + NULL, /* no quoting function */ + lsearch_version_report /* version reporting */ }; static lookup_info nwildlsearch_lookup_info = { @@ -440,7 +459,8 @@ static lookup_info nwildlsearch_lookup_info = { nwildlsearch_find, /* find function */ lsearch_close, /* close function */ NULL, /* no tidy function */ - NULL /* no quoting function */ + NULL, /* no quoting function */ + NULL /* no version reporting (redundant) */ }; static lookup_info wildlsearch_lookup_info = { @@ -451,7 +471,8 @@ static lookup_info wildlsearch_lookup_info = { wildlsearch_find, /* find function */ lsearch_close, /* close function */ NULL, /* no tidy function */ - NULL /* no quoting function */ + NULL, /* no quoting function */ + NULL /* no version reporting (redundant) */ }; #ifdef DYNLOOKUP