xref: /openbsd-src/sbin/unwind/frontend.h (revision 5dca88cebaf59bf2beacddbb8d991395e3e08b4e)
1*5dca88ceSflorian /*	$OpenBSD: frontend.h,v 1.9 2021/01/27 08:30:50 florian Exp $	*/
2018cebfbSflorian 
3018cebfbSflorian /*
4018cebfbSflorian  * Copyright (c) 2018 Florian Obser <florian@openbsd.org>
5018cebfbSflorian  * Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
6018cebfbSflorian  *
7018cebfbSflorian  * Permission to use, copy, modify, and distribute this software for any
8018cebfbSflorian  * purpose with or without fee is hereby granted, provided that the above
9018cebfbSflorian  * copyright notice and this permission notice appear in all copies.
10018cebfbSflorian  *
11018cebfbSflorian  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12018cebfbSflorian  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13018cebfbSflorian  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14018cebfbSflorian  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15018cebfbSflorian  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16018cebfbSflorian  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17018cebfbSflorian  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18018cebfbSflorian  */
19018cebfbSflorian 
20*5dca88ceSflorian #define	HAVE_IPV4	1
21*5dca88ceSflorian #define	HAVE_IPV6	2
22*5dca88ceSflorian 
23296cf316Sflorian struct trust_anchor {
24296cf316Sflorian 	TAILQ_ENTRY(trust_anchor)	 entry;
25296cf316Sflorian 	char				*ta;
26296cf316Sflorian };
27296cf316Sflorian 
28296cf316Sflorian TAILQ_HEAD(trust_anchor_head, trust_anchor);
29296cf316Sflorian 
3028ba4729Sflorian struct imsg_rdns_proposal {
3128ba4729Sflorian 	uint32_t		 if_index;
3212811ba0Sflorian 	int			 src;
3328ba4729Sflorian 	struct sockaddr_rtdns	 rtdns;
3428ba4729Sflorian };
35296cf316Sflorian 
3600b0420eSflorian struct dns64_prefix {
3700b0420eSflorian 	struct in6_addr	 in6;
3800b0420eSflorian 	int		 prefixlen;
3900b0420eSflorian 	int		 flags;
4000b0420eSflorian };
4100b0420eSflorian 
42018cebfbSflorian void		 frontend(int, int);
43018cebfbSflorian void		 frontend_dispatch_main(int, short, void *);
44018cebfbSflorian void		 frontend_dispatch_resolver(int, short, void *);
45018cebfbSflorian int		 frontend_imsg_compose_main(int, pid_t, void *, uint16_t);
46018cebfbSflorian int		 frontend_imsg_compose_resolver(int, pid_t, void *, uint16_t);
47b2501eadSflorian char		*ip_port(struct sockaddr *);
48296cf316Sflorian void		 add_new_ta(struct trust_anchor_head *, char *);
49296cf316Sflorian void		 free_tas(struct trust_anchor_head *);
50296cf316Sflorian int		 merge_tas(struct trust_anchor_head *,
51296cf316Sflorian 		    struct trust_anchor_head *);
52