* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Jeremy Harris 2019 */
+/* Copyright (c) Jeremy Harris 2019-2020 */
+/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
json_set_alloc_funcs(json_malloc, json_free);
if (!(f = Ufopen(filename, "rb")))
- {
- int save_errno = errno;
- *errmsg = string_open_failed(errno, "%s for json search", filename);
- errno = save_errno;
- return NULL;
- }
+ *errmsg = string_open_failed("%s for json search", filename);
return f;
}
static int
json_find(void * handle, const uschar * filename, const uschar * keystring,
- int length, uschar ** result, uschar ** errmsg, uint * do_cache)
+ int length, uschar ** result, uschar ** errmsg, uint * do_cache,
+ const uschar * opts)
{
FILE * f = handle;
json_t * j, * j0;
uschar * key;
int sep = 0;
-length = length; /* Keep picky compilers happy */
-do_cache = do_cache; /* Keep picky compilers happy */
-
rewind(f);
if (!(j = json_loadf(f, 0, &jerr)))
{
#include "../version.h"
-void
-json_version_report(FILE *f)
+gstring *
+json_version_report(gstring * g)
{
-fprintf(f, "Library version: json: Jansonn version %s\n", JANSSON_VERSION);
+return string_fmt_append(g, "Library version: json: Jansonn version %s\n", JANSSON_VERSION);
}
static lookup_info json_lookup_info = {
- US"json", /* lookup name */
- lookup_absfile, /* uses absolute file name */
- json_open, /* open function */
- json_check, /* check function */
- json_find, /* find function */
- json_close, /* close function */
- NULL, /* no tidy function */
- NULL, /* no quoting function */
- json_version_report /* version reporting */
+ .name = US"json", /* lookup name */
+ .type = lookup_absfile, /* uses absolute file name */
+ .open = json_open, /* open function */
+ .check = json_check, /* check function */
+ .find = json_find, /* find function */
+ .close = json_close, /* close function */
+ .tidy = NULL, /* no tidy function */
+ .quote = NULL, /* no quoting function */
+ .version_report = json_version_report /* version reporting */
};