1 /*************************************************
2 * Exim - an Internet mail transport agent *
3 *************************************************/
5 /* Copyright (c) University of Cambridge 1995 - 2015 */
6 /* See the file NOTICE for conditions of use and distribution. */
8 /* This code originally came from Robert Wal. */
13 #include <whoson.h> /* Public header */
16 /*************************************************
18 *************************************************/
20 /* See local README for interface description. */
23 whoson_open(const uschar
* filename
, uschar
** errmsg
)
25 filename
= filename
; /* Keep picky compilers happy */
27 return (void *)(1); /* Just return something non-null */
31 /*************************************************
33 *************************************************/
35 /* See local README for interface description. */
38 whoson_find(void * handle
, const uschar
* filename
, uschar
* query
, int length
,
39 uschar
** result
, uschar
** errmsg
, uint
* do_cache
, const uschar
* opts
)
42 handle
= handle
; /* Keep picky compilers happy */
48 switch (wso_query(CS query
, CS buffer
, sizeof(buffer
)))
51 *result
= string_copy(buffer
); /* IP in database; return name of user */
55 return FAIL
; /* IP not in database */
58 *errmsg
= string_sprintf("WHOSON: failed to complete: %s", buffer
);
65 /*************************************************
66 * Version reporting entry point *
67 *************************************************/
69 /* See local README for interface description. */
71 #include "../version.h"
74 whoson_version_report(FILE *f
)
76 fprintf(f
, "Library version: Whoson: Runtime: %s\n", wso_version());
78 fprintf(f
, " Exim version %s\n", EXIM_VERSION_STR
);
82 static lookup_info _lookup_info
= {
83 US
"whoson", /* lookup name */
84 lookup_querystyle
, /* query-style lookup */
85 whoson_open
, /* open function */
86 NULL
, /* check function */
87 whoson_find
, /* find function */
88 NULL
, /* no close function */
89 NULL
, /* no tidy function */
90 NULL
, /* no quoting function */
91 whoson_version_report
/* version reporting */
95 #define whoson_lookup_module_info _lookup_module_info
98 static lookup_info
*_lookup_list
[] = { &_lookup_info
};
99 lookup_module_info whoson_lookup_module_info
= { LOOKUP_MODULE_INFO_MAGIC
, _lookup_list
, 1 };
101 /* End of lookups/whoson.c */