ccce2eef51ef2d5284fca0e374e9e6d909728b59
[exim.git] / src / src / routers / iplookup.h
1 /*************************************************
2 *     Exim - an Internet mail transport agent    *
3 *************************************************/
4
5 /* Copyright (c) University of Cambridge 1995 - 2009 */
6 /* Copyright (c) The Exim Maintainers 2021 */
7 /* See the file NOTICE for conditions of use and distribution. */
8 /* SPDX-License-Identifier: GPL-2.0-or-later */
9
10
11 /* Private structure for the private options. */
12
13 typedef struct {
14   int   port;
15   int   protocol;
16   int   timeout;
17   uschar *protocol_name;
18   uschar *hosts;
19   uschar *query;
20   uschar *response_pattern;
21   uschar *reroute;
22   const pcre2_code *re_response_pattern;
23   BOOL  optional;
24 } iplookup_router_options_block;
25
26 /* Data for reading the private options. */
27
28 extern optionlist iplookup_router_options[];
29 extern int iplookup_router_options_count;
30
31 /* Block containing default values. */
32
33 extern iplookup_router_options_block iplookup_router_option_defaults;
34
35 /* The main and initialization entry points for the router */
36
37 extern int iplookup_router_entry(router_instance *, address_item *,
38   struct passwd *, int, address_item **, address_item **,
39   address_item **, address_item **);
40
41 extern void iplookup_router_init(router_instance *);
42
43 /* End of routers/iplookup.h */