Home | History | Annotate | Line # | Download | only in named
      1 /*	$NetBSD: globals.h,v 1.11 2025/01/26 16:24:34 christos Exp $	*/
      2 
      3 /*
      4  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
      5  *
      6  * SPDX-License-Identifier: MPL-2.0
      7  *
      8  * This Source Code Form is subject to the terms of the Mozilla Public
      9  * License, v. 2.0. If a copy of the MPL was not distributed with this
     10  * file, you can obtain one at https://mozilla.org/MPL/2.0/.
     11  *
     12  * See the COPYRIGHT file distributed with this work for additional
     13  * information regarding copyright ownership.
     14  */
     15 
     16 #pragma once
     17 
     18 /*! \file */
     19 
     20 #include <stdbool.h>
     21 
     22 #include <isc/log.h>
     23 #include <isc/loop.h>
     24 #include <isc/net.h>
     25 #include <isc/netmgr.h>
     26 #include <isc/rwlock.h>
     27 
     28 #include <dns/acl.h>
     29 #include <dns/zone.h>
     30 
     31 #include <dst/dst.h>
     32 
     33 #include <isccfg/aclconf.h>
     34 #include <isccfg/cfg.h>
     35 
     36 #include <named/fuzz.h>
     37 #include <named/types.h>
     38 
     39 #undef EXTERN
     40 #undef INIT
     41 #ifdef NAMED_MAIN
     42 #define EXTERN
     43 #define INIT(v) = (v)
     44 #else /* ifdef NAMED_MAIN */
     45 #define EXTERN extern
     46 #define INIT(v)
     47 #endif /* ifdef NAMED_MAIN */
     48 
     49 #ifndef NAMED_RUN_PID_DIR
     50 #define NAMED_RUN_PID_DIR 1
     51 #endif /* ifndef NAMED_RUN_PID_DIR */
     52 
     53 EXTERN isc_mem_t *named_g_mctx		      INIT(NULL);
     54 EXTERN unsigned int named_g_cpus	      INIT(0);
     55 EXTERN isc_loop_t *named_g_mainloop	      INIT(NULL);
     56 EXTERN isc_loopmgr_t *named_g_loopmgr	      INIT(NULL);
     57 EXTERN bool named_g_loopmgr_running	      INIT(false);
     58 EXTERN dns_dispatchmgr_t *named_g_dispatchmgr INIT(NULL);
     59 EXTERN unsigned int named_g_cpus_detected     INIT(1);
     60 
     61 #ifdef ENABLE_AFL
     62 EXTERN bool named_g_run_done INIT(false);
     63 #endif /* ifdef ENABLE_AFL */
     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_nm_t *named_g_netmgr	       INIT(NULL);
     70 EXTERN cfg_parser_t *named_g_parser    INIT(NULL);
     71 EXTERN cfg_parser_t *named_g_addparser INIT(NULL);
     72 EXTERN const char *named_g_version     INIT(PACKAGE_VERSION);
     73 EXTERN const char *named_g_product     INIT(PACKAGE_NAME);
     74 EXTERN const char *named_g_description INIT(PACKAGE_DESCRIPTION);
     75 EXTERN const char *named_g_srcid       INIT(PACKAGE_SRCID);
     76 EXTERN const char *named_g_configargs  INIT(PACKAGE_CONFIGARGS);
     77 EXTERN const char *named_g_builder     INIT(PACKAGE_BUILDER);
     78 EXTERN in_port_t named_g_port	       INIT(0);
     79 EXTERN in_port_t named_g_tlsport       INIT(0);
     80 EXTERN in_port_t named_g_httpsport     INIT(0);
     81 EXTERN in_port_t named_g_httpport      INIT(0);
     82 
     83 EXTERN in_port_t named_g_http_listener_clients INIT(0);
     84 EXTERN in_port_t named_g_http_streams_per_conn INIT(0);
     85 
     86 EXTERN named_server_t *named_g_server INIT(NULL);
     87 
     88 /*
     89  * Logging.
     90  */
     91 EXTERN isc_log_t *named_g_lctx		     INIT(NULL);
     92 EXTERN isc_logcategory_t *named_g_categories INIT(NULL);
     93 EXTERN isc_logmodule_t *named_g_modules	     INIT(NULL);
     94 EXTERN unsigned int named_g_debuglevel	     INIT(0);
     95 
     96 /*
     97  * Current configuration information.
     98  */
     99 EXTERN cfg_obj_t *named_g_config	   INIT(NULL);
    100 EXTERN const cfg_obj_t *named_g_defaults   INIT(NULL);
    101 EXTERN const char *named_g_conffile	   INIT(NAMED_SYSCONFDIR "/named.conf");
    102 EXTERN const char *named_g_defaultbindkeys INIT(NULL);
    103 EXTERN const char *named_g_keyfile	   INIT(NAMED_SYSCONFDIR "/rndc.key");
    104 
    105 EXTERN bool named_g_conffileset		    INIT(false);
    106 EXTERN cfg_aclconfctx_t *named_g_aclconfctx INIT(NULL);
    107 
    108 /*
    109  * Misc.
    110  */
    111 EXTERN bool named_g_coreok	     INIT(true);
    112 EXTERN const char *named_g_chrootdir INIT(NULL);
    113 EXTERN bool named_g_foreground	     INIT(false);
    114 EXTERN bool named_g_logstderr	     INIT(false);
    115 EXTERN bool named_g_nosyslog	     INIT(false);
    116 EXTERN const char *named_g_logfile   INIT(NULL);
    117 
    118 EXTERN const char *named_g_defaultsessionkeyfile INIT(NAMED_LOCALSTATEDIR
    119 						      "/run/named/"
    120 						      "session.key");
    121 
    122 #if NAMED_RUN_PID_DIR
    123 EXTERN const char *named_g_defaultpidfile INIT(NAMED_LOCALSTATEDIR "/run/named/"
    124 								   "named.pid");
    125 #else  /* if NAMED_RUN_PID_DIR */
    126 EXTERN const char *named_g_defaultpidfile INIT(NAMED_LOCALSTATEDIR "/run/"
    127 								   "named.pid");
    128 #endif /* if NAMED_RUN_PID_DIR */
    129 
    130 EXTERN const char *named_g_username INIT(NULL);
    131 
    132 EXTERN const char *named_g_engine INIT(NULL);
    133 
    134 EXTERN isc_time_t		  named_g_boottime;
    135 EXTERN isc_time_t		  named_g_configtime;
    136 EXTERN bool named_g_memstatistics INIT(false);
    137 EXTERN bool named_g_keepstderr	  INIT(false);
    138 
    139 EXTERN unsigned int named_g_tat_interval INIT(24 * 3600);
    140 EXTERN unsigned int named_g_maxcachesize INIT(0);
    141 
    142 #if defined(HAVE_GEOIP2)
    143 EXTERN dns_geoip_databases_t *named_g_geoip INIT(NULL);
    144 #endif /* if defined(HAVE_GEOIP2) */
    145 
    146 EXTERN const char *named_g_fuzz_addr	INIT(NULL);
    147 EXTERN isc_fuzztype_t named_g_fuzz_type INIT(isc_fuzz_none);
    148 
    149 EXTERN dns_acl_t *named_g_mapped INIT(NULL);
    150 
    151 #undef EXTERN
    152 #undef INIT
    153