1 /* $OpenBSD: resolver.h,v 1.17 2019/12/18 09:18:27 florian Exp $ */ 2 3 /* 4 * Copyright (c) 2018 Florian Obser <florian@openbsd.org> 5 * Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org> 6 * 7 * Permission to use, copy, modify, and distribute this software for any 8 * purpose with or without fee is hereby granted, provided that the above 9 * copyright notice and this permission notice appear in all copies. 10 * 11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 enum uw_resolver_state { 21 DEAD, 22 UNKNOWN, 23 RESOLVING, 24 VALIDATING 25 }; 26 27 static const char * const uw_resolver_state_str[] = { 28 "dead", 29 "unknown", 30 "resolving", 31 "validating" 32 }; 33 34 static const int64_t histogram_limits[] = { 35 10, 36 20, 37 40, 38 60, 39 80, 40 100, 41 200, 42 400, 43 600, 44 800, 45 1000, 46 INT64_MAX, 47 }; 48 49 struct ctl_resolver_info { 50 enum uw_resolver_state state; 51 enum uw_resolver_type type; 52 int64_t median; 53 int64_t histogram[nitems(histogram_limits)]; 54 int64_t latest_histogram[nitems(histogram_limits)]; 55 }; 56 57 struct ctl_forwarder_info { 58 char ip[INET6_ADDRSTRLEN]; 59 uint32_t if_index; 60 int src; 61 }; 62 63 struct ctl_mem_info { 64 size_t msg_cache_used; 65 size_t msg_cache_max; 66 size_t rrset_cache_used; 67 size_t rrset_cache_max; 68 size_t key_cache_used; 69 size_t key_cache_max; 70 size_t neg_cache_used; 71 size_t neg_cache_max; 72 }; 73 74 void resolver(int, int); 75 int resolver_imsg_compose_main(int, pid_t, void *, uint16_t); 76 int resolver_imsg_compose_frontend(int, pid_t, void *, uint16_t); 77