1 /* $NetBSD: globals.h,v 1.9 2015/07/08 17:28:55 christos Exp $ */ 2 3 /* 4 * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") 5 * Copyright (C) 1999-2003 Internet Software Consortium. 6 * 7 * Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH 12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 13 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 /* Id: globals.h,v 1.92 2011/11/09 18:44:04 each Exp */ 21 22 #ifndef NAMED_GLOBALS_H 23 #define NAMED_GLOBALS_H 1 24 25 /*! \file */ 26 27 #include <isc/rwlock.h> 28 #include <isc/log.h> 29 #include <isc/net.h> 30 31 #include <isccfg/aclconf.h> 32 #include <isccfg/cfg.h> 33 34 #include <dns/acl.h> 35 #include <dns/zone.h> 36 37 #include <dst/dst.h> 38 39 #include <named/types.h> 40 41 #undef EXTERN 42 #undef INIT 43 #ifdef NS_MAIN 44 #define EXTERN 45 #define INIT(v) = (v) 46 #else 47 #define EXTERN extern 48 #define INIT(v) 49 #endif 50 51 #ifndef NS_RUN_PID_DIR 52 #define NS_RUN_PID_DIR 1 53 #endif 54 55 EXTERN isc_mem_t * ns_g_mctx INIT(NULL); 56 EXTERN unsigned int ns_g_cpus INIT(0); 57 EXTERN unsigned int ns_g_udpdisp INIT(0); 58 EXTERN isc_taskmgr_t * ns_g_taskmgr INIT(NULL); 59 EXTERN dns_dispatchmgr_t * ns_g_dispatchmgr INIT(NULL); 60 EXTERN isc_entropy_t * ns_g_entropy INIT(NULL); 61 EXTERN isc_entropy_t * ns_g_fallbackentropy INIT(NULL); 62 EXTERN unsigned int ns_g_cpus_detected INIT(1); 63 64 /* 65 * XXXRTH We're going to want multiple timer managers eventually. One 66 * for really short timers, another for client timers, and one 67 * for zone timers. 68 */ 69 EXTERN isc_timermgr_t * ns_g_timermgr INIT(NULL); 70 EXTERN isc_socketmgr_t * ns_g_socketmgr INIT(NULL); 71 EXTERN cfg_parser_t * ns_g_parser INIT(NULL); 72 EXTERN const char * ns_g_version INIT(VERSION); 73 EXTERN const char * ns_g_product INIT(PRODUCT); 74 EXTERN const char * ns_g_description INIT(DESCRIPTION); 75 EXTERN const char * ns_g_srcid INIT(SRCID); 76 EXTERN const char * ns_g_configargs INIT(CONFIGARGS); 77 EXTERN const char * ns_g_builder INIT(BUILDER); 78 EXTERN in_port_t ns_g_port INIT(0); 79 EXTERN isc_dscp_t ns_g_dscp INIT(-1); 80 EXTERN in_port_t lwresd_g_listenport INIT(0); 81 82 EXTERN ns_server_t * ns_g_server INIT(NULL); 83 84 EXTERN isc_boolean_t ns_g_lwresdonly INIT(ISC_FALSE); 85 86 /* 87 * Logging. 88 */ 89 EXTERN isc_log_t * ns_g_lctx INIT(NULL); 90 EXTERN isc_logcategory_t * ns_g_categories INIT(NULL); 91 EXTERN isc_logmodule_t * ns_g_modules INIT(NULL); 92 EXTERN unsigned int ns_g_debuglevel INIT(0); 93 94 /* 95 * Current configuration information. 96 */ 97 EXTERN cfg_obj_t * ns_g_config INIT(NULL); 98 EXTERN const cfg_obj_t * ns_g_defaults INIT(NULL); 99 EXTERN const char * ns_g_conffile INIT(NS_SYSCONFDIR 100 "/named.conf"); 101 EXTERN cfg_obj_t * ns_g_bindkeys INIT(NULL); 102 EXTERN const char * ns_g_keyfile INIT(NS_SYSCONFDIR 103 "/rndc.key"); 104 105 EXTERN dns_tsigkey_t * ns_g_sessionkey INIT(NULL); 106 EXTERN dns_name_t ns_g_sessionkeyname; 107 108 EXTERN const char * lwresd_g_conffile INIT(NS_SYSCONFDIR 109 "/lwresd.conf"); 110 EXTERN const char * lwresd_g_resolvconffile INIT("/etc" 111 "/resolv.conf"); 112 EXTERN isc_boolean_t ns_g_conffileset INIT(ISC_FALSE); 113 EXTERN isc_boolean_t lwresd_g_useresolvconf INIT(ISC_FALSE); 114 EXTERN isc_uint16_t ns_g_udpsize INIT(4096); 115 EXTERN cfg_aclconfctx_t * ns_g_aclconfctx INIT(NULL); 116 117 /* 118 * Initial resource limits. 119 */ 120 EXTERN isc_resourcevalue_t ns_g_initstacksize INIT(0); 121 EXTERN isc_resourcevalue_t ns_g_initdatasize INIT(0); 122 EXTERN isc_resourcevalue_t ns_g_initcoresize INIT(0); 123 EXTERN isc_resourcevalue_t ns_g_initopenfiles INIT(0); 124 125 /* 126 * Misc. 127 */ 128 EXTERN isc_boolean_t ns_g_coreok INIT(ISC_TRUE); 129 EXTERN const char * ns_g_chrootdir INIT(NULL); 130 EXTERN isc_boolean_t ns_g_foreground INIT(ISC_FALSE); 131 EXTERN isc_boolean_t ns_g_logstderr INIT(ISC_FALSE); 132 EXTERN isc_boolean_t ns_g_nosyslog INIT(ISC_FALSE); 133 134 EXTERN const char * ns_g_defaultsessionkeyfile 135 INIT(NS_LOCALSTATEDIR "/run/named/" 136 "session.key"); 137 138 #if NS_RUN_PID_DIR 139 EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR 140 "/run/named/" 141 "named.pid"); 142 EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR 143 "/run/lwresd/" 144 "lwresd.pid"); 145 #else 146 EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR 147 "/run/named.pid"); 148 EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR 149 "/run/lwresd.pid"); 150 #endif 151 152 EXTERN const char * ns_g_username INIT(NULL); 153 154 #if defined(USE_PKCS11) 155 EXTERN const char * ns_g_engine INIT(PKCS11_ENGINE); 156 #else 157 EXTERN const char * ns_g_engine INIT(NULL); 158 #endif 159 160 EXTERN int ns_g_listen INIT(3); 161 EXTERN isc_time_t ns_g_boottime; 162 EXTERN isc_time_t ns_g_configtime; 163 EXTERN isc_boolean_t ns_g_memstatistics INIT(ISC_FALSE); 164 EXTERN isc_boolean_t ns_g_clienttest INIT(ISC_FALSE); 165 EXTERN isc_boolean_t ns_g_dropedns INIT(ISC_FALSE); 166 EXTERN isc_boolean_t ns_g_noedns INIT(ISC_FALSE); 167 EXTERN isc_boolean_t ns_g_nosoa INIT(ISC_FALSE); 168 EXTERN isc_boolean_t ns_g_noaa INIT(ISC_FALSE); 169 EXTERN unsigned int ns_g_delay INIT(0); 170 EXTERN isc_boolean_t ns_g_nonearest INIT(ISC_FALSE); 171 EXTERN isc_boolean_t ns_g_notcp INIT(ISC_FALSE); 172 EXTERN isc_boolean_t ns_g_disable6 INIT(ISC_FALSE); 173 EXTERN isc_boolean_t ns_g_disable4 INIT(ISC_FALSE); 174 175 176 #ifdef HAVE_GEOIP 177 EXTERN dns_geoip_databases_t *ns_g_geoip INIT(NULL); 178 #endif 179 180 #undef EXTERN 181 #undef INIT 182 183 #endif /* NAMED_GLOBALS_H */ 184