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