xref: /netbsd-src/external/mpl/bind/dist/lib/dns/include/dns/log.h (revision bcda20f65a8566e103791ec395f7f499ef322704)
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