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