Home | History | Annotate | Line # | Download | only in dns
      1 /*	$NetBSD: log.h,v 1.8 2025/01/26 16:25:27 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 /*! \file dns/log.h
     17  */
     18 
     19 #pragma once
     20 
     21 #include <isc/lang.h>
     22 #include <isc/log.h>
     23 
     24 extern isc_log_t	*dns_lctx;
     25 extern isc_logcategory_t dns_categories[];
     26 extern isc_logmodule_t	 dns_modules[];
     27 
     28 #define DNS_LOGCATEGORY_NOTIFY	 (&dns_categories[0])
     29 #define DNS_LOGCATEGORY_DATABASE (&dns_categories[1])
     30 #define DNS_LOGCATEGORY_SECURITY (&dns_categories[2])
     31 /* DNS_LOGCATEGORY_CONFIG superseded by CFG_LOGCATEGORY_CONFIG */
     32 #define DNS_LOGCATEGORY_DNSSEC	     (&dns_categories[4])
     33 #define DNS_LOGCATEGORY_RESOLVER     (&dns_categories[5])
     34 #define DNS_LOGCATEGORY_XFER_IN	     (&dns_categories[6])
     35 #define DNS_LOGCATEGORY_XFER_OUT     (&dns_categories[7])
     36 #define DNS_LOGCATEGORY_DISPATCH     (&dns_categories[8])
     37 #define DNS_LOGCATEGORY_LAME_SERVERS (&dns_categories[9])
     38 /* #define DNS_LOGCATEGORY_DELEGATION_ONLY removed */
     39 #define DNS_LOGCATEGORY_EDNS_DISABLED (&dns_categories[10])
     40 #define DNS_LOGCATEGORY_RPZ	      (&dns_categories[11])
     41 #define DNS_LOGCATEGORY_RRL	      (&dns_categories[12])
     42 #define DNS_LOGCATEGORY_CNAME	      (&dns_categories[13])
     43 #define DNS_LOGCATEGORY_SPILL	      (&dns_categories[14])
     44 #define DNS_LOGCATEGORY_DNSTAP	      (&dns_categories[15])
     45 #define DNS_LOGCATEGORY_ZONELOAD      (&dns_categories[16])
     46 #define DNS_LOGCATEGORY_NSID	      (&dns_categories[17])
     47 #define DNS_LOGCATEGORY_RPZ_PASSTHRU  (&dns_categories[18])
     48 
     49 /* Backwards compatibility. */
     50 #define DNS_LOGCATEGORY_GENERAL ISC_LOGCATEGORY_GENERAL
     51 
     52 #define DNS_LOGMODULE_DB	 (&dns_modules[0])
     53 #define DNS_LOGMODULE_RBTDB	 (&dns_modules[1])
     54 #define DNS_LOGMODULE_RBT	 (&dns_modules[2])
     55 #define DNS_LOGMODULE_RDATA	 (&dns_modules[3])
     56 #define DNS_LOGMODULE_MASTER	 (&dns_modules[4])
     57 #define DNS_LOGMODULE_MESSAGE	 (&dns_modules[5])
     58 #define DNS_LOGMODULE_CACHE	 (&dns_modules[6])
     59 #define DNS_LOGMODULE_CONFIG	 (&dns_modules[7])
     60 #define DNS_LOGMODULE_RESOLVER	 (&dns_modules[8])
     61 #define DNS_LOGMODULE_ZONE	 (&dns_modules[9])
     62 #define DNS_LOGMODULE_JOURNAL	 (&dns_modules[10])
     63 #define DNS_LOGMODULE_ADB	 (&dns_modules[11])
     64 #define DNS_LOGMODULE_XFER_IN	 (&dns_modules[12])
     65 #define DNS_LOGMODULE_XFER_OUT	 (&dns_modules[13])
     66 #define DNS_LOGMODULE_ACL	 (&dns_modules[14])
     67 #define DNS_LOGMODULE_VALIDATOR	 (&dns_modules[15])
     68 #define DNS_LOGMODULE_DISPATCH	 (&dns_modules[16])
     69 #define DNS_LOGMODULE_REQUEST	 (&dns_modules[17])
     70 #define DNS_LOGMODULE_MASTERDUMP (&dns_modules[18])
     71 #define DNS_LOGMODULE_TSIG	 (&dns_modules[19])
     72 #define DNS_LOGMODULE_TKEY	 (&dns_modules[20])
     73 #define DNS_LOGMODULE_SDB	 (&dns_modules[21])
     74 #define DNS_LOGMODULE_DIFF	 (&dns_modules[22])
     75 #define DNS_LOGMODULE_HINTS	 (&dns_modules[23])
     76 #define DNS_LOGMODULE_UNUSED1	 (&dns_modules[24])
     77 #define DNS_LOGMODULE_DLZ	 (&dns_modules[25])
     78 #define DNS_LOGMODULE_DNSSEC	 (&dns_modules[26])
     79 #define DNS_LOGMODULE_CRYPTO	 (&dns_modules[27])
     80 #define DNS_LOGMODULE_PACKETS	 (&dns_modules[28])
     81 #define DNS_LOGMODULE_NTA	 (&dns_modules[29])
     82 #define DNS_LOGMODULE_DYNDB	 (&dns_modules[30])
     83 #define DNS_LOGMODULE_DNSTAP	 (&dns_modules[31])
     84 #define DNS_LOGMODULE_SSU	 (&dns_modules[32])
     85 #define DNS_LOGMODULE_QP	 (&dns_modules[33])
     86 
     87 ISC_LANG_BEGINDECLS
     88 
     89 void
     90 dns_log_init(isc_log_t *lctx);
     91 /*%
     92  * Make the libdns categories and modules available for use with the
     93  * ISC logging library.
     94  *
     95  * Requires:
     96  *\li	lctx is a valid logging context.
     97  *
     98  *\li	dns_log_init() is called only once.
     99  *
    100  * Ensures:
    101  * \li	The categories and modules defined above are available for
    102  * 	use by isc_log_usechannnel() and isc_log_write().
    103  */
    104 
    105 void
    106 dns_log_setcontext(isc_log_t *lctx);
    107 /*%
    108  * Make the libdns library use the provided context for logging internal
    109  * messages.
    110  *
    111  * Requires:
    112  *\li	lctx is a valid logging context.
    113  */
    114 
    115 ISC_LANG_ENDDECLS
    116