xref: /netbsd/external/mpl/bind/dist/lib/dns/include/dns/log.h (revision c0b5d9fb)
1 /*	$NetBSD: log.h,v 1.6 2022/09/23 12:15:30 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 #ifndef DNS_LOG_H
20 #define DNS_LOG_H 1
21 
22 #include <isc/lang.h>
23 #include <isc/log.h>
24 
25 LIBDNS_EXTERNAL_DATA extern isc_log_t	     *dns_lctx;
26 LIBDNS_EXTERNAL_DATA extern isc_logcategory_t dns_categories[];
27 LIBDNS_EXTERNAL_DATA extern isc_logmodule_t   dns_modules[];
28 
29 #define DNS_LOGCATEGORY_NOTIFY	 (&dns_categories[0])
30 #define DNS_LOGCATEGORY_DATABASE (&dns_categories[1])
31 #define DNS_LOGCATEGORY_SECURITY (&dns_categories[2])
32 /* DNS_LOGCATEGORY_CONFIG superseded by CFG_LOGCATEGORY_CONFIG */
33 #define DNS_LOGCATEGORY_DNSSEC		(&dns_categories[4])
34 #define DNS_LOGCATEGORY_RESOLVER	(&dns_categories[5])
35 #define DNS_LOGCATEGORY_XFER_IN		(&dns_categories[6])
36 #define DNS_LOGCATEGORY_XFER_OUT	(&dns_categories[7])
37 #define DNS_LOGCATEGORY_DISPATCH	(&dns_categories[8])
38 #define DNS_LOGCATEGORY_LAME_SERVERS	(&dns_categories[9])
39 #define DNS_LOGCATEGORY_DELEGATION_ONLY (&dns_categories[10])
40 #define DNS_LOGCATEGORY_EDNS_DISABLED	(&dns_categories[11])
41 #define DNS_LOGCATEGORY_RPZ		(&dns_categories[12])
42 #define DNS_LOGCATEGORY_RRL		(&dns_categories[13])
43 #define DNS_LOGCATEGORY_CNAME		(&dns_categories[14])
44 #define DNS_LOGCATEGORY_SPILL		(&dns_categories[15])
45 #define DNS_LOGCATEGORY_DNSTAP		(&dns_categories[16])
46 #define DNS_LOGCATEGORY_ZONELOAD	(&dns_categories[17])
47 #define DNS_LOGCATEGORY_NSID		(&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 
86 ISC_LANG_BEGINDECLS
87 
88 void
89 dns_log_init(isc_log_t *lctx);
90 /*%
91  * Make the libdns categories and modules available for use with the
92  * ISC logging library.
93  *
94  * Requires:
95  *\li	lctx is a valid logging context.
96  *
97  *\li	dns_log_init() is called only once.
98  *
99  * Ensures:
100  * \li	The categories and modules defined above are available for
101  * 	use by isc_log_usechannnel() and isc_log_write().
102  */
103 
104 void
105 dns_log_setcontext(isc_log_t *lctx);
106 /*%
107  * Make the libdns library use the provided context for logging internal
108  * messages.
109  *
110  * Requires:
111  *\li	lctx is a valid logging context.
112  */
113 
114 ISC_LANG_ENDDECLS
115 
116 #endif /* DNS_LOG_H */
117