From d447dbd160a0fb503ed1e763f3f23d28744b6ddd Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sun, 29 Mar 2020 19:07:48 +0100 Subject: [PATCH] constify --- src/src/drtables.c | 3 +- src/src/functions.h | 6 +- src/src/lookupapi.h | 6 +- src/src/lookups/cdb.c | 202 +++++++++++++++----------------- src/src/lookups/dbmdb.c | 24 ++-- src/src/lookups/dnsdb.c | 6 +- src/src/lookups/dsearch.c | 10 +- src/src/lookups/ibase.c | 49 ++++---- src/src/lookups/json.c | 8 +- src/src/lookups/ldap.c | 18 +-- src/src/lookups/lf_check_file.c | 4 +- src/src/lookups/lf_functions.h | 2 +- src/src/lookups/lmdb.c | 4 +- src/src/lookups/lsearch.c | 40 +++---- src/src/lookups/mysql.c | 6 +- src/src/lookups/nis.c | 10 +- src/src/lookups/nisplus.c | 6 +- src/src/lookups/oracle.c | 6 +- src/src/lookups/passwd.c | 6 +- src/src/lookups/pgsql.c | 6 +- src/src/lookups/redis.c | 10 +- src/src/lookups/spf.c | 6 +- src/src/lookups/sqlite.c | 9 +- src/src/lookups/testdb.c | 6 +- src/src/lookups/whoson.c | 6 +- src/src/search.c | 11 +- 26 files changed, 226 insertions(+), 244 deletions(-) diff --git a/src/src/drtables.c b/src/src/drtables.c index f1053bbda..7fa8ca469 100644 --- a/src/src/drtables.c +++ b/src/src/drtables.c @@ -546,8 +546,7 @@ if (lookup_list[pos]) /* need to insert it, so move all the other items up (last slot is still empty, of course) */ - memmove(&lookup_list[pos+1], - &lookup_list[pos], + memmove(&lookup_list[pos+1], &lookup_list[pos], sizeof(lookup_info *) * (lookup_list_count-pos-1)); } lookup_list[pos] = info; diff --git a/src/src/functions.h b/src/src/functions.h index f789c5e2d..90e6e6791 100644 --- a/src/src/functions.h +++ b/src/src/functions.h @@ -438,12 +438,12 @@ extern void route_init(void); extern void route_show_supported(FILE *); extern void route_tidyup(void); -extern uschar *search_find(void *, uschar *, uschar *, int, const uschar *, int, - int, int *); +extern uschar *search_find(void *, const uschar *, uschar *, int, + const uschar *, int, int, int *); extern int search_findtype(const uschar *, int); extern int search_findtype_partial(const uschar *, int *, const uschar **, int *, int *); -extern void *search_open(uschar *, int, int, uid_t *, gid_t *); +extern void *search_open(const uschar *, int, int, uid_t *, gid_t *); extern void search_tidyup(void); extern void set_process_info(const char *, ...) PRINTF_FUNCTION(1,2); extern void sha1_end(hctx *, const uschar *, int, uschar *); diff --git a/src/src/lookupapi.h b/src/src/lookupapi.h index 9055f5239..07e7af91b 100644 --- a/src/src/lookupapi.h +++ b/src/src/lookupapi.h @@ -18,18 +18,18 @@ typedef struct lookup_info { uschar *name; /* e.g. "lsearch" */ int type; /* query/singlekey/abs-file */ void *(*open)( /* open function */ - uschar *, /* file name for those that have one */ + const uschar *, /* file name for those that have one */ uschar **); /* for error message */ BOOL (*check)( /* file checking function */ void *, /* handle */ - uschar *, /* file name */ + const uschar *, /* file name */ int, /* modemask for file checking */ uid_t *, /* owners for file checking */ gid_t *, /* owngroups for file checking */ uschar **); /* for error messages */ int (*find)( /* find function */ void *, /* handle */ - uschar *, /* file name or NULL */ + const uschar *, /* file name or NULL */ const uschar *, /* key or query */ int, /* length of key or query */ uschar **, /* for returning answer */ diff --git a/src/src/lookups/cdb.c b/src/src/lookups/cdb.c index 5cae1535f..c9a5de1d8 100644 --- a/src/src/lookups/cdb.c +++ b/src/src/lookups/cdb.c @@ -136,108 +136,109 @@ cdb_bread(int fd, static uint32 cdb_unpack(uschar *buf) { - uint32 num; - num = buf[3]; num <<= 8; - num += buf[2]; num <<= 8; - num += buf[1]; num <<= 8; - num += buf[0]; - return num; +uint32 num; +num = buf[3]; num <<= 8; +num += buf[2]; num <<= 8; +num += buf[1]; num <<= 8; +num += buf[0]; +return num; } static void cdb_close(void *handle); static void * -cdb_open(uschar *filename, - uschar **errmsg) +cdb_open(const uschar * filename, uschar ** errmsg) { - int fileno; - struct cdb_state *cdbp; - struct stat statbuf; - void * mapbuf; - - fileno = Uopen(filename, O_RDONLY, 0); - if (fileno == -1) { - int save_errno = errno; - *errmsg = string_open_failed(errno, "%s for cdb lookup", filename); - errno = save_errno; - return NULL; +int fileno; +struct cdb_state *cdbp; +struct stat statbuf; +void * mapbuf; + +if ((fileno = Uopen(filename, O_RDONLY, 0)) < 0) + { + int save_errno = errno; + *errmsg = string_open_failed(errno, "%s for cdb lookup", filename); + errno = save_errno; + return NULL; } - if (fstat(fileno, &statbuf) == 0) { - /* If this is a valid file, then it *must* be at least - * CDB_HASH_TABLE bytes long */ - if (statbuf.st_size < CDB_HASH_TABLE) { - int save_errno = errno; - *errmsg = string_open_failed(errno, - "%s too short for cdb lookup", - filename); - errno = save_errno; - return NULL; - } - } else { - int save_errno = errno; - *errmsg = string_open_failed(errno, - "fstat(%s) failed - cannot do cdb lookup", - filename); - errno = save_errno; - return NULL; +if (fstat(fileno, &statbuf) != 0) + { + int save_errno = errno; + *errmsg = string_open_failed(errno, + "fstat(%s) failed - cannot do cdb lookup", + filename); + errno = save_errno; + return NULL; + } + +/* If this is a valid file, then it *must* be at least +CDB_HASH_TABLE bytes long */ + +if (statbuf.st_size < CDB_HASH_TABLE) + { + int save_errno = errno; + *errmsg = string_open_failed(errno, + "%s too short for cdb lookup", + filename); + errno = save_errno; + return NULL; } - /* Having got a file open we need the structure to put things in */ - cdbp = store_get(sizeof(struct cdb_state), FALSE); - /* store_get() does not return if memory was not available... */ - /* preload the structure.... */ - cdbp->fileno = fileno; - cdbp->filelen = statbuf.st_size; - cdbp->cdb_map = NULL; - cdbp->cdb_offsets = NULL; +/* Having got a file open we need the structure to put things in */ +cdbp = store_get(sizeof(struct cdb_state), FALSE); +/* store_get() does not return if memory was not available... */ +/* preload the structure.... */ +cdbp->fileno = fileno; +cdbp->filelen = statbuf.st_size; +cdbp->cdb_map = NULL; +cdbp->cdb_offsets = NULL; - /* if we are allowed to we use mmap here.... */ +/* if we are allowed to we use mmap here.... */ #ifdef HAVE_MMAP - mapbuf = mmap(NULL, - statbuf.st_size, - PROT_READ, - MAP_SHARED, - fileno, - 0); - if (mapbuf != MAP_FAILED) { - /* We have an mmap-ed section. Now we can just use it */ - cdbp->cdb_map = mapbuf; - /* The offsets can be set to the same value since they should - * effectively be cached as well - */ - cdbp->cdb_offsets = mapbuf; - - /* Now return the state struct */ - return(cdbp); - } else - /* If we got here the map failed. Basically we can ignore - * this since we fall back to slower methods.... - * However lets debug log it... - */ - DEBUG(D_lookup) debug_printf_indent("cdb mmap failed - %d\n", errno); +if ((mapbuf = mmap(NULL, statbuf.st_size, PROT_READ, MAP_SHARED, fileno, 0)) + != MAP_FAILED) + { + /* We have an mmap-ed section. Now we can just use it */ + cdbp->cdb_map = mapbuf; + /* The offsets can be set to the same value since they should + * effectively be cached as well + */ + cdbp->cdb_offsets = mapbuf; + + /* Now return the state struct */ + return(cdbp); + } + +/* If we got here the map failed. Basically we can ignore this since we fall +back to slower methods.... However lets debug log it... */ + +DEBUG(D_lookup) debug_printf_indent("cdb mmap failed - %d\n", errno); #endif /* HAVE_MMAP */ - /* In this case we have either not got MMAP allowed, or it failed */ - - /* get a buffer to stash the basic offsets in - this should speed - * things up a lot - especially on multiple lookups */ - cdbp->cdb_offsets = store_get(CDB_HASH_TABLE, FALSE); - - /* now fill the buffer up... */ - if (cdb_bread(fileno, cdbp->cdb_offsets, CDB_HASH_TABLE) == -1) { - /* read of hash table failed, oh dear, oh..... - * time to give up I think.... - * call the close routine (deallocs the memory), and return NULL */ - *errmsg = string_open_failed(errno, - "cannot read header from %s for cdb lookup", - filename); - cdb_close(cdbp); - return NULL; +/* In this case we have either not got MMAP allowed, or it failed */ + +/* get a buffer to stash the basic offsets in - this should speed +things up a lot - especially on multiple lookups */ + +cdbp->cdb_offsets = store_get(CDB_HASH_TABLE, FALSE); + +/* now fill the buffer up... */ + +if (cdb_bread(fileno, cdbp->cdb_offsets, CDB_HASH_TABLE) == -1) + { + /* read of hash table failed, oh dear, oh..... time to give up I think.... + call the close routine (deallocs the memory), and return NULL */ + + *errmsg = string_open_failed(errno, + "cannot read header from %s for cdb lookup", + filename); + cdb_close(cdbp); + return NULL; } - /* Everything else done - return the cache structure */ - return cdbp; +/* Everything else done - return the cache structure */ +return cdbp; } @@ -247,22 +248,12 @@ cdb_open(uschar *filename, *************************************************/ static BOOL -cdb_check(void *handle, - uschar *filename, - int modemask, - uid_t *owners, - gid_t *owngroups, - uschar **errmsg) +cdb_check(void * handle, const uschar * filename, int modemask, + uid_t * owners, gid_t * owngroups, uschar ** errmsg) { - struct cdb_state * cdbp = handle; - return lf_check_file(cdbp->fileno, - filename, - S_IFREG, - modemask, - owners, - owngroups, - "cdb", - errmsg) == 0; +struct cdb_state * cdbp = handle; +return lf_check_file(cdbp->fileno, filename, S_IFREG, modemask, + owners, owngroups, "cdb", errmsg) == 0; } @@ -272,13 +263,8 @@ cdb_check(void *handle, *************************************************/ static int -cdb_find(void *handle, - uschar *filename, - const uschar *keystring, - int key_len, - uschar **result, - uschar **errmsg, - uint *do_cache) +cdb_find(void * handle, const uschar * filename, const uschar * keystring, + int key_len, uschar ** result, uschar ** errmsg, uint * do_cache) { struct cdb_state * cdbp = handle; uint32 item_key_len, diff --git a/src/src/lookups/dbmdb.c b/src/src/lookups/dbmdb.c index 5e97009cc..f3bd6d2da 100644 --- a/src/src/lookups/dbmdb.c +++ b/src/src/lookups/dbmdb.c @@ -16,7 +16,7 @@ /* See local README for interface description */ static void * -dbmdb_open(uschar *filename, uschar **errmsg) +dbmdb_open(const uschar * filename, uschar ** errmsg) { uschar * dirname = string_copy(filename); uschar * s; @@ -24,7 +24,7 @@ EXIM_DB *yield = NULL; if ((s = Ustrrchr(dirname, '/'))) *s = '\0'; EXIM_DBOPEN(filename, dirname, O_RDONLY, 0, &yield); -if (yield == NULL) +if (!yield) { int save_errno = errno; *errmsg = string_open_failed(errno, "%s as a %s file", filename, EXIM_DBTYPE); @@ -47,7 +47,7 @@ the same. Otherwise, for safety, we have to check for x.db or x.dir and x.pag. */ static BOOL -dbmdb_check(void *handle, uschar *filename, int modemask, uid_t *owners, +dbmdb_check(void *handle, const uschar *filename, int modemask, uid_t *owners, gid_t *owngroups, uschar **errmsg) { int rc; @@ -90,8 +90,8 @@ return rc == 0; the keylength in order to include the terminating zero. */ static int -dbmdb_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +dbmdb_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { EXIM_DB *d = (EXIM_DB *)handle; EXIM_DATUM key, data; @@ -122,9 +122,9 @@ return FAIL; /* See local README for interface description */ -int -static dbmnz_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +static int +dbmnz_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { return dbmdb_find(handle, filename, keystring, length-1, result, errmsg, do_cache); @@ -143,8 +143,8 @@ return dbmdb_find(handle, filename, keystring, length-1, result, errmsg, */ static int -dbmjz_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +dbmjz_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { uschar *key_item, *key_buffer, *key_p; const uschar *key_elems = keystring; @@ -203,8 +203,8 @@ DEBUG(D_lookup) debug_printf_indent("NUL-joined key length: %d\n", key_item_len) /* beware that dbmdb_find() adds 1 to length to get back terminating NUL, so because we've calculated the real length, we need to subtract one more here */ -return dbmdb_find(handle, filename, - key_buffer, key_item_len - 1, + +return dbmdb_find(handle, filename, key_buffer, key_item_len - 1, result, errmsg, do_cache); } diff --git a/src/src/lookups/dnsdb.c b/src/src/lookups/dnsdb.c index 94809e5d8..cc711c5c3 100644 --- a/src/src/lookups/dnsdb.c +++ b/src/src/lookups/dnsdb.c @@ -77,7 +77,7 @@ static int type_values[] = { /* See local README for interface description. */ static void * -dnsdb_open(uschar *filename, uschar **errmsg) +dnsdb_open(const uschar * filename, uschar **errmsg) { filename = filename; /* Keep picky compilers happy */ errmsg = errmsg; /* Ditto */ @@ -130,8 +130,8 @@ which may start with '<' in order to set a specific separator. The default separator, as always, is colon. */ static int -dnsdb_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +dnsdb_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { int rc; int sep = 0; diff --git a/src/src/lookups/dsearch.c b/src/src/lookups/dsearch.c index 3a0df303b..dba8422cc 100644 --- a/src/src/lookups/dsearch.c +++ b/src/src/lookups/dsearch.c @@ -25,7 +25,7 @@ it open, because the "search" can be done by a call to lstat() rather than actually scanning through the list of files. */ static void * -dsearch_open(uschar *dirname, uschar **errmsg) +dsearch_open(const uschar * dirname, uschar ** errmsg) { DIR * dp = exim_opendir(dirname); if (!dp) @@ -48,8 +48,8 @@ return (void *)(-1); integer as this gives warnings on 64-bit systems. */ static BOOL -dsearch_check(void *handle, uschar *filename, int modemask, uid_t *owners, - gid_t *owngroups, uschar **errmsg) +dsearch_check(void * handle, const uschar * filename, int modemask, + uid_t * owners, gid_t * owngroups, uschar ** errmsg) { handle = handle; return lf_check_file(-1, filename, S_IFDIR, modemask, owners, owngroups, @@ -66,8 +66,8 @@ scanning the directory, as it is hopefully faster to let the OS do the scanning for us. */ static int -dsearch_find(void *handle, uschar *dirname, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +dsearch_find(void * handle, const uschar * dirname, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { struct stat statbuf; int save_errno; diff --git a/src/src/lookups/ibase.c b/src/src/lookups/ibase.c index f08f503f0..2ccb7b4f1 100644 --- a/src/src/lookups/ibase.c +++ b/src/src/lookups/ibase.c @@ -31,9 +31,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 +450,32 @@ 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, +ibase_find(void * handle, const uschar * filename, uschar * query, int length, uschar ** result, uschar ** errmsg, uint *do_cache) { - 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; +uschar buffer[512]; - if (ibase_servers == NULL) - *errmsg = US "no Interbase servers defined (ibase_servers option)"; +/* Keep picky compilers happy */ +do_cache = do_cache; - return DEFER; +DEBUG(D_lookup) debug_printf_indent("Interbase query: %s\n", query); + +while ((server = string_nextinlist(&list, &sep, buffer, + sizeof(buffer)))) + { + 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; } diff --git a/src/src/lookups/json.c b/src/src/lookups/json.c index 15b861751..f476db3d9 100644 --- a/src/src/lookups/json.c +++ b/src/src/lookups/json.c @@ -40,7 +40,7 @@ json_free(void * p) /* See local README for interface description */ static void * -json_open(uschar *filename, uschar **errmsg) +json_open(const uschar * filename, uschar ** errmsg) { FILE * f; @@ -63,7 +63,7 @@ return f; *************************************************/ static BOOL -json_check(void *handle, uschar *filename, int modemask, uid_t *owners, +json_check(void *handle, const uschar *filename, int modemask, uid_t *owners, gid_t *owngroups, uschar **errmsg) { return lf_check_file(fileno((FILE *)handle), filename, S_IFREG, modemask, @@ -79,8 +79,8 @@ return lf_check_file(fileno((FILE *)handle), filename, S_IFREG, modemask, /* See local README for interface description */ static int -json_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +json_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { FILE * f = handle; json_t * j, * j0; diff --git a/src/src/lookups/ldap.c b/src/src/lookups/ldap.c index 8972d1074..b9a52d251 100644 --- a/src/src/lookups/ldap.c +++ b/src/src/lookups/ldap.c @@ -1283,8 +1283,8 @@ are handled by a common function, with a flag to differentiate between them. The handle and filename arguments are not used. */ static int -eldap_find(void *handle, uschar *filename, const uschar *ldap_url, int length, - uschar **result, uschar **errmsg, uint *do_cache) +eldap_find(void * handle, const uschar * filename, const uschar * ldap_url, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { /* Keep picky compilers happy */ do_cache = do_cache; @@ -1292,8 +1292,8 @@ return(control_ldap_search(ldap_url, SEARCH_LDAP_SINGLE, result, errmsg)); } static int -eldapm_find(void *handle, uschar *filename, const uschar *ldap_url, int length, - uschar **result, uschar **errmsg, uint *do_cache) +eldapm_find(void * handle, const uschar * filename, const uschar * ldap_url, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { /* Keep picky compilers happy */ do_cache = do_cache; @@ -1301,8 +1301,8 @@ return(control_ldap_search(ldap_url, SEARCH_LDAP_MULTIPLE, result, errmsg)); } static int -eldapdn_find(void *handle, uschar *filename, const uschar *ldap_url, int length, - uschar **result, uschar **errmsg, uint *do_cache) +eldapdn_find(void * handle, const uschar * filename, const uschar * ldap_url, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { /* Keep picky compilers happy */ do_cache = do_cache; @@ -1310,8 +1310,8 @@ return(control_ldap_search(ldap_url, SEARCH_LDAP_DN, result, errmsg)); } int -eldapauth_find(void *handle, uschar *filename, const uschar *ldap_url, int length, - uschar **result, uschar **errmsg, uint *do_cache) +eldapauth_find(void * handle, const uschar * filename, const uschar * ldap_url, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { /* Keep picky compilers happy */ do_cache = do_cache; @@ -1327,7 +1327,7 @@ return(control_ldap_search(ldap_url, SEARCH_LDAP_AUTH, result, errmsg)); /* See local README for interface description. */ static void * -eldap_open(uschar *filename, uschar **errmsg) +eldap_open(const uschar * filename, uschar ** errmsg) { return (void *)(1); /* Just return something non-null */ } diff --git a/src/src/lookups/lf_check_file.c b/src/src/lookups/lf_check_file.c index 8b1140876..eb08a4de2 100644 --- a/src/src/lookups/lf_check_file.c +++ b/src/src/lookups/lf_check_file.c @@ -38,8 +38,8 @@ Side effect: sets errno to ERRNO_BADUGID, ERRNO_NOTREGULAR or ERRNO_BADMODE for */ int -lf_check_file(int fd, uschar *filename, int s_type, int modemask, uid_t *owners, - gid_t *owngroups, const char *type, uschar **errmsg) +lf_check_file(int fd, const uschar * filename, int s_type, int modemask, + uid_t * owners, gid_t * owngroups, const char * type, uschar ** errmsg) { struct stat statbuf; diff --git a/src/src/lookups/lf_functions.h b/src/src/lookups/lf_functions.h index 8fa6027c6..4d9ae9595 100644 --- a/src/src/lookups/lf_functions.h +++ b/src/src/lookups/lf_functions.h @@ -7,7 +7,7 @@ /* Header for the functions that are shared by the lookups */ -extern int lf_check_file(int, uschar *, int, int, uid_t *, gid_t *, +extern int lf_check_file(int, const uschar *, int, int, uid_t *, gid_t *, const char *, uschar **); extern gstring *lf_quote(uschar *, uschar *, int, gstring *); extern int lf_sqlperform(const uschar *, const uschar *, const uschar *, diff --git a/src/src/lookups/lmdb.c b/src/src/lookups/lmdb.c index 2976cfac5..712261a41 100644 --- a/src/src/lookups/lmdb.c +++ b/src/src/lookups/lmdb.c @@ -23,7 +23,7 @@ MDB_dbi db_dbi; *************************************************/ static void * -lmdb_open(uschar * filename, uschar ** errmsg) +lmdb_open(const uschar * filename, uschar ** errmsg) { MDB_env * db_env = NULL; Lmdbstrct * lmdb_p; @@ -74,7 +74,7 @@ bad: *************************************************/ static int -lmdb_find(void * handle, uschar * filename, +lmdb_find(void * handle, const uschar * filename, const uschar * keystring, int length, uschar ** result, uschar ** errmsg, uint * do_cache) { diff --git a/src/src/lookups/lsearch.c b/src/src/lookups/lsearch.c index 76b76b8f9..92a76e7c3 100644 --- a/src/src/lookups/lsearch.c +++ b/src/src/lookups/lsearch.c @@ -26,7 +26,7 @@ enum { /* See local README for interface description */ static void * -lsearch_open(uschar *filename, uschar **errmsg) +lsearch_open(const uschar * filename, uschar ** errmsg) { FILE *f = Ufopen(filename, "rb"); if (f == NULL) @@ -46,7 +46,7 @@ return f; *************************************************/ static BOOL -lsearch_check(void *handle, uschar *filename, int modemask, uid_t *owners, +lsearch_check(void *handle, const uschar *filename, int modemask, uid_t *owners, gid_t *owngroups, uschar **errmsg) { return lf_check_file(fileno((FILE *)handle), filename, S_IFREG, modemask, @@ -71,8 +71,9 @@ 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, const uschar *keystring, - int length, uschar **result, uschar **errmsg, int type) +internal_lsearch_find(void * handle, const uschar * filename, + const uschar * keystring, int length, uschar ** result, uschar ** errmsg, + int type) { FILE *f = (FILE *)handle; BOOL last_was_eol = TRUE; @@ -318,8 +319,8 @@ return FAIL; /* See local README for interface description */ static int -lsearch_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +lsearch_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { do_cache = do_cache; /* Keep picky compilers happy */ return internal_lsearch_find(handle, filename, keystring, length, result, @@ -335,8 +336,8 @@ return internal_lsearch_find(handle, filename, keystring, length, result, /* See local README for interface description */ static int -wildlsearch_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +wildlsearch_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { do_cache = do_cache; /* Keep picky compilers happy */ return internal_lsearch_find(handle, filename, keystring, length, result, @@ -352,8 +353,8 @@ return internal_lsearch_find(handle, filename, keystring, length, result, /* See local README for interface description */ static int -nwildlsearch_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +nwildlsearch_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { do_cache = do_cache; /* Keep picky compilers happy */ return internal_lsearch_find(handle, filename, keystring, length, result, @@ -370,23 +371,20 @@ return internal_lsearch_find(handle, filename, keystring, length, result, /* See local README for interface description */ static int -iplsearch_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +iplsearch_find(void * handle, uschar const * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { do_cache = do_cache; /* Keep picky compilers happy */ + if ((length == 1 && keystring[0] == '*') || string_is_ip_address(keystring, NULL) != 0) - { return internal_lsearch_find(handle, filename, keystring, length, result, errmsg, LSEARCH_IP); - } -else - { - *errmsg = string_sprintf("\"%s\" is not a valid iplsearch key (an IP " - "address, with optional CIDR mask, is wanted): " - "in a host list, use net-iplsearch as the search type", keystring); - return DEFER; - } + +*errmsg = string_sprintf("\"%s\" is not a valid iplsearch key (an IP " +"address, with optional CIDR mask, is wanted): " +"in a host list, use net-iplsearch as the search type", keystring); +return DEFER; } diff --git a/src/src/lookups/mysql.c b/src/src/lookups/mysql.c index 460ee2973..745c6505c 100644 --- a/src/src/lookups/mysql.c +++ b/src/src/lookups/mysql.c @@ -81,7 +81,7 @@ static mysql_connection *mysql_connections = NULL; /* See local README for interface description. */ static void * -mysql_open(uschar *filename, uschar **errmsg) +mysql_open(const uschar * filename, uschar ** errmsg) { return (void *)(1); /* Just return something non-null */ } @@ -389,8 +389,8 @@ query is deferred with a retryable error is now in a separate function that is shared with other SQL lookups. */ static int -mysql_find(void *handle, uschar *filename, const uschar *query, int length, - uschar **result, uschar **errmsg, uint *do_cache) +mysql_find(void * handle, const uschar * filename, const uschar * query, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { return lf_sqlperform(US"MySQL", US"mysql_servers", mysql_servers, query, result, errmsg, do_cache, perform_mysql_search); diff --git a/src/src/lookups/nis.c b/src/src/lookups/nis.c index 6f5307f43..10ecf74c9 100644 --- a/src/src/lookups/nis.c +++ b/src/src/lookups/nis.c @@ -19,7 +19,7 @@ the "nis" and "nis0" lookup types. */ static void * -nis_open(uschar *filename, uschar **errmsg) +nis_open(const uschar * filename, uschar ** errmsg) { char *nis_domain; if (yp_get_default_domain(&nis_domain) != 0) @@ -41,8 +41,8 @@ for nis0 because they are so short it isn't worth trying to use any common code. */ static int -nis_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +nis_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { int rc; uschar *nis_data; @@ -67,8 +67,8 @@ return (rc == YPERR_KEY || rc == YPERR_MAP)? FAIL : DEFER; /* See local README for interface description. */ static int -nis0_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +nis0_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { int rc; uschar *nis_data; diff --git a/src/src/lookups/nisplus.c b/src/src/lookups/nisplus.c index 98f3df303..370f6a655 100644 --- a/src/src/lookups/nisplus.c +++ b/src/src/lookups/nisplus.c @@ -18,7 +18,7 @@ /* See local README for interface description. */ static void * -nisplus_open(uschar *filename, uschar **errmsg) +nisplus_open(const uschar * filename, uschar ** errmsg) { return (void *)(1); /* Just return something non-null */ } @@ -42,8 +42,8 @@ yield is the concatenation of all the fields, preceded by their names and an equals sign. */ static int -nisplus_find(void *handle, uschar *filename, const uschar *query, int length, - uschar **result, uschar **errmsg, uint *do_cache) +nisplus_find(void * handle, const uschar * filename, const uschar * query, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { int error_error = FAIL; const uschar * field_name = NULL; diff --git a/src/src/lookups/oracle.c b/src/src/lookups/oracle.c index 4e8cba5ca..e22ff8945 100644 --- a/src/src/lookups/oracle.c +++ b/src/src/lookups/oracle.c @@ -196,7 +196,7 @@ return col; /* See local README for interface description. */ static void * -oracle_open(uschar *filename, uschar **errmsg) +oracle_open(const uschar * filename, uschar ** errmsg) { return (void *)(1); /* Just return something non-null */ } @@ -503,8 +503,8 @@ arguments are not used. Loop through a list of servers while the query is deferred with a retryable error. */ static int -oracle_find(void *handle, uschar *filename, uschar *query, int length, - uschar **result, uschar **errmsg, uint *do_cache) +oracle_find(void * handle, const uschar * filename, uschar * query, int length, + uschar ** result, uschar ** errmsg, uint * do_cache) { int sep = 0; uschar *server; diff --git a/src/src/lookups/passwd.c b/src/src/lookups/passwd.c index 315677ffa..58222f605 100644 --- a/src/src/lookups/passwd.c +++ b/src/src/lookups/passwd.c @@ -16,7 +16,7 @@ /* See local README for interface description */ static void * -passwd_open(uschar *filename, uschar **errmsg) +passwd_open(const uschar * filename, uschar ** errmsg) { filename = filename; /* Keep picky compilers happy */ errmsg = errmsg; @@ -33,8 +33,8 @@ return (void *)(-1); /* Just return something non-null */ /* See local README for interface description */ static int -passwd_find(void *handle, uschar *filename, const uschar *keystring, int length, - uschar **result, uschar **errmsg, uint *do_cache) +passwd_find(void * handle, const uschar * filename, const uschar * keystring, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { struct passwd *pw; diff --git a/src/src/lookups/pgsql.c b/src/src/lookups/pgsql.c index b5f60938e..cf287b179 100644 --- a/src/src/lookups/pgsql.c +++ b/src/src/lookups/pgsql.c @@ -33,7 +33,7 @@ static pgsql_connection *pgsql_connections = NULL; /* See local README for interface description. */ static void * -pgsql_open(uschar *filename, uschar **errmsg) +pgsql_open(const uschar * filename, uschar ** errmsg) { return (void *)(1); /* Just return something non-null */ } @@ -381,8 +381,8 @@ query is deferred with a retryable error is now in a separate function that is shared with other SQL lookups. */ static int -pgsql_find(void *handle, uschar *filename, const uschar *query, int length, - uschar **result, uschar **errmsg, uint *do_cache) +pgsql_find(void * handle, const uschar * filename, const uschar * query, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { return lf_sqlperform(US"PostgreSQL", US"pgsql_servers", pgsql_servers, query, result, errmsg, do_cache, perform_pgsql_search); diff --git a/src/src/lookups/redis.c b/src/src/lookups/redis.c index 53bd8d53d..b5c2eda23 100644 --- a/src/src/lookups/redis.c +++ b/src/src/lookups/redis.c @@ -28,7 +28,7 @@ static redis_connection *redis_connections = NULL; static void * -redis_open(uschar *filename, uschar **errmsg) +redis_open(const uschar * filename, uschar ** errmsg) { return (void *)(1); } @@ -374,10 +374,10 @@ else */ static int -redis_find(void *handle __attribute__((unused)), - uschar *filename __attribute__((unused)), - const uschar *command, int length, uschar **result, uschar **errmsg, - uint *do_cache) +redis_find(void * handle __attribute__((unused)), + const uschar * filename __attribute__((unused)), + const uschar * command, int length, uschar ** result, uschar ** errmsg, + uint * do_cache) { return lf_sqlperform(US"Redis", US"redis_servers", redis_servers, command, result, errmsg, do_cache, perform_redis_search); diff --git a/src/src/lookups/spf.c b/src/src/lookups/spf.c index c84b6bbce..243c271a4 100644 --- a/src/src/lookups/spf.c +++ b/src/src/lookups/spf.c @@ -35,7 +35,7 @@ extern SPF_dns_server_t * SPF_dns_exim_new(int); static void * -spf_open(uschar *filename, uschar **errmsg) +spf_open(const uschar * filename, uschar ** errmsg) { SPF_dns_server_t * dc; SPF_server_t *spf_server = NULL; @@ -64,8 +64,8 @@ if (spf_server) SPF_server_free(spf_server); } static int -spf_find(void *handle, uschar *filename, const uschar *keystring, int key_len, - uschar **result, uschar **errmsg, uint *do_cache) +spf_find(void * handle, const uschar * filename, const uschar * keystring, + int key_len, uschar ** result, uschar ** errmsg, uint * do_cache) { SPF_server_t *spf_server = handle; SPF_request_t *spf_request; diff --git a/src/src/lookups/sqlite.c b/src/src/lookups/sqlite.c index 6200d6c82..cf68b121a 100644 --- a/src/src/lookups/sqlite.c +++ b/src/src/lookups/sqlite.c @@ -18,13 +18,12 @@ /* See local README for interface description. */ static void * -sqlite_open(uschar *filename, uschar **errmsg) +sqlite_open(const uschar * filename, uschar ** errmsg) { sqlite3 *db = NULL; int ret; -ret = sqlite3_open(CS filename, &db); -if (ret != 0) +if ((ret = sqlite3_open(CCS filename, &db)) != 0) { *errmsg = (void *)sqlite3_errmsg(db); debug_printf_indent("Error opening database: %s\n", *errmsg); @@ -70,8 +69,8 @@ return 0; static int -sqlite_find(void *handle, uschar *filename, const uschar *query, int length, - uschar **result, uschar **errmsg, uint *do_cache) +sqlite_find(void * handle, const uschar * filename, const uschar * query, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { int ret; gstring * res = NULL; diff --git a/src/src/lookups/testdb.c b/src/src/lookups/testdb.c index 3f19e80f6..a4f0af729 100644 --- a/src/src/lookups/testdb.c +++ b/src/src/lookups/testdb.c @@ -21,7 +21,7 @@ the find function. */ /* See local README for interface description. */ static void * -testdb_open(uschar *filename, uschar **errmsg) +testdb_open(const uschar * filename, uschar ** errmsg) { filename = filename; /* Keep picky compilers happy */ errmsg = errmsg; @@ -37,8 +37,8 @@ return (void *)(1); /* Just return something non-null */ /* See local README for interface description. */ static int -testdb_find(void *handle, uschar *filename, const uschar *query, int length, - uschar **result, uschar **errmsg, uint *do_cache) +testdb_find(void * handle, const uschar * filename, const uschar * query, + int length, uschar ** result, uschar ** errmsg, uint * do_cache) { handle = handle; /* Keep picky compilers happy */ filename = filename; diff --git a/src/src/lookups/whoson.c b/src/src/lookups/whoson.c index 8f065e60e..20d013351 100644 --- a/src/src/lookups/whoson.c +++ b/src/src/lookups/whoson.c @@ -20,7 +20,7 @@ /* See local README for interface description. */ static void * -whoson_open(uschar *filename, uschar **errmsg) +whoson_open(const uschar * filename, uschar ** errmsg) { filename = filename; /* Keep picky compilers happy */ errmsg = errmsg; @@ -35,8 +35,8 @@ return (void *)(1); /* Just return something non-null */ /* See local README for interface description. */ static int -whoson_find(void *handle, uschar *filename, uschar *query, int length, - uschar **result, uschar **errmsg, uint *do_cache) +whoson_find(void * handle, const uschar * filename, uschar * query, int length, + uschar ** result, uschar ** errmsg, uint * do_cache) { uschar buffer[80]; handle = handle; /* Keep picky compilers happy */ diff --git a/src/src/search.c b/src/src/search.c index dc90f53d5..d67bdc59e 100644 --- a/src/src/search.c +++ b/src/src/search.c @@ -325,8 +325,8 @@ Returns: an identifying handle for the open database; */ void * -search_open(uschar *filename, int search_type, int modemask, uid_t *owners, - gid_t *owngroups) +search_open(const uschar * filename, int search_type, int modemask, + uid_t * owners, gid_t * owngroups) { void *handle; tree_node *t; @@ -462,7 +462,7 @@ Returns: a pointer to a dynamic string containing the answer, */ static uschar * -internal_search_find(void *handle, uschar *filename, uschar *keystring) +internal_search_find(void * handle, const uschar * filename, uschar * keystring) { tree_node * t = (tree_node *)handle; search_cache * c = (search_cache *)(t->data.ptr); @@ -605,8 +605,9 @@ Returns: a pointer to a dynamic string containing the answer, */ uschar * -search_find(void *handle, uschar *filename, uschar *keystring, int partial, - const uschar *affix, int affixlen, int starflags, int *expand_setup) +search_find(void * handle, const uschar * filename, uschar * keystring, + int partial, const uschar * affix, int affixlen, int starflags, + int * expand_setup) { tree_node *t = (tree_node *)handle; BOOL set_null_wild = FALSE; -- 2.30.2