xref: /netbsd-src/external/mpl/bind/dist/lib/isc/result.c (revision bcda20f65a8566e103791ec395f7f499ef322704)
1 /*	$NetBSD: result.c,v 1.12 2025/01/26 16:25:38 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 */
17 
18 #include <stddef.h>
19 #include <stdlib.h>
20 
21 #include <isc/once.h>
22 #include <isc/util.h>
23 
24 static const char *description[ISC_R_NRESULTS] = {
25 	[ISC_R_SUCCESS] = "success",
26 	[ISC_R_NOMEMORY] = "out of memory",
27 	[ISC_R_TIMEDOUT] = "timed out",
28 	[ISC_R_NOTHREADS] = "no available threads",
29 	[ISC_R_ADDRNOTAVAIL] = "address not available",
30 	[ISC_R_ADDRINUSE] = "address in use",
31 	[ISC_R_NOPERM] = "permission denied",
32 	[ISC_R_NOCONN] = "no pending connections",
33 	[ISC_R_NETUNREACH] = "network unreachable",
34 	[ISC_R_HOSTUNREACH] = "host unreachable",
35 	[ISC_R_NETDOWN] = "network down",
36 	[ISC_R_HOSTDOWN] = "host down",
37 	[ISC_R_CONNREFUSED] = "connection refused",
38 	[ISC_R_NORESOURCES] = "not enough free resources",
39 	[ISC_R_EOF] = "end of file",
40 	[ISC_R_BOUND] = "socket already bound",
41 	[ISC_R_RELOAD] = "reload",
42 	[ISC_R_LOCKBUSY] = "lock busy",
43 	[ISC_R_EXISTS] = "already exists",
44 	[ISC_R_NOSPACE] = "ran out of space",
45 	[ISC_R_CANCELED] = "operation canceled",
46 	[ISC_R_NOTBOUND] = "socket is not bound",
47 	[ISC_R_SHUTTINGDOWN] = "shutting down",
48 	[ISC_R_NOTFOUND] = "not found",
49 	[ISC_R_UNEXPECTEDEND] = "unexpected end of input",
50 	[ISC_R_FAILURE] = "failure",
51 	[ISC_R_IOERROR] = "I/O error",
52 	[ISC_R_NOTIMPLEMENTED] = "not implemented",
53 	[ISC_R_UNBALANCED] = "unbalanced parentheses",
54 	[ISC_R_NOMORE] = "no more",
55 	[ISC_R_INVALIDFILE] = "invalid file",
56 	[ISC_R_BADBASE64] = "bad base64 encoding",
57 	[ISC_R_UNEXPECTEDTOKEN] = "unexpected token",
58 	[ISC_R_QUOTA] = "quota reached",
59 	[ISC_R_UNEXPECTED] = "unexpected error",
60 	[ISC_R_ALREADYRUNNING] = "already running",
61 	[ISC_R_IGNORE] = "ignore",
62 	[ISC_R_MASKNONCONTIG] = "address mask not contiguous",
63 	[ISC_R_FILENOTFOUND] = "file not found",
64 	[ISC_R_FILEEXISTS] = "file already exists",
65 	[ISC_R_NOTCONNECTED] = "socket is not connected",
66 	[ISC_R_RANGE] = "out of range",
67 	[ISC_R_NOENTROPY] = "out of entropy",
68 	[ISC_R_MULTICAST] = "invalid use of multicast address",
69 	[ISC_R_NOTFILE] = "not a file",
70 	[ISC_R_NOTDIRECTORY] = "not a directory",
71 	[ISC_R_EMPTY] = "queue is empty",
72 	[ISC_R_FAMILYMISMATCH] = "address family mismatch",
73 	[ISC_R_FAMILYNOSUPPORT] = "address family not supported",
74 	[ISC_R_BADHEX] = "bad hex encoding",
75 	[ISC_R_TOOMANYOPENFILES] = "too many open files",
76 	[ISC_R_NOTBLOCKING] = "not blocking",
77 	[ISC_R_UNBALANCEDQUOTES] = "unbalanced quotes",
78 	[ISC_R_INPROGRESS] = "operation in progress",
79 	[ISC_R_CONNECTIONRESET] = "connection reset",
80 	[ISC_R_SOFTQUOTA] = "soft quota reached",
81 	[ISC_R_BADNUMBER] = "not a valid number",
82 	[ISC_R_DISABLED] = "disabled",
83 	[ISC_R_MAXSIZE] = "max size",
84 	[ISC_R_BADADDRESSFORM] = "invalid address format",
85 	[ISC_R_BADBASE32] = "bad base32 encoding",
86 	[ISC_R_UNSET] = "unset",
87 	[ISC_R_MULTIPLE] = "multiple",
88 	[ISC_R_WOULDBLOCK] = "would block",
89 	[ISC_R_COMPLETE] = "complete",
90 	[ISC_R_CRYPTOFAILURE] = "crypto failure",
91 	[ISC_R_DISCQUOTA] = "disc quota",
92 	[ISC_R_DISCFULL] = "disc full",
93 	[ISC_R_DEFAULT] = "default",
94 	[ISC_R_IPV4PREFIX] = "IPv4 prefix",
95 	[ISC_R_TLSERROR] = "TLS error",
96 	[ISC_R_TLSBADPEERCERT] = "TLS peer certificate verification failed",
97 	[ISC_R_HTTP2ALPNERROR] = "ALPN for HTTP/2 failed",
98 	[ISC_R_DOTALPNERROR] = "ALPN for DoT failed",
99 	[ISC_R_INVALIDPROTO] = "invalid protocol",
100 
101 	[DNS_R_LABELTOOLONG] = "label too long",
102 	[DNS_R_BADESCAPE] = "bad escape",
103 	[DNS_R_EMPTYLABEL] = "empty label",
104 	[DNS_R_BADDOTTEDQUAD] = "bad dotted quad",
105 	[DNS_R_INVALIDNS] = "invalid NS owner name (wildcard)",
106 	[DNS_R_UNKNOWN] = "unknown class/type",
107 	[DNS_R_BADLABELTYPE] = "bad label type",
108 	[DNS_R_BADPOINTER] = "bad compression pointer",
109 	[DNS_R_TOOMANYHOPS] = "too many hops",
110 	[DNS_R_DISALLOWED] = "disallowed (by application policy)",
111 	[DNS_R_EXTRATOKEN] = "extra input text",
112 	[DNS_R_EXTRADATA] = "extra input data",
113 	[DNS_R_TEXTTOOLONG] = "text too long",
114 	[DNS_R_NOTZONETOP] = "not at top of zone",
115 	[DNS_R_SYNTAX] = "syntax error",
116 	[DNS_R_BADCKSUM] = "bad checksum",
117 	[DNS_R_BADAAAA] = "bad IPv6 address",
118 	[DNS_R_NOOWNER] = "no owner",
119 	[DNS_R_NOTTL] = "no ttl",
120 	[DNS_R_BADCLASS] = "bad class",
121 	[DNS_R_NAMETOOLONG] = "name too long",
122 	[DNS_R_PARTIALMATCH] = "partial match",
123 	[DNS_R_NEWORIGIN] = "new origin",
124 	[DNS_R_UNCHANGED] = "unchanged",
125 	[DNS_R_BADTTL] = "bad ttl",
126 	[DNS_R_NOREDATA] = "more data needed/to be rendered",
127 	[DNS_R_CONTINUE] = "continue",
128 	[DNS_R_DELEGATION] = "delegation",
129 	[DNS_R_GLUE] = "glue",
130 	[DNS_R_DNAME] = "dname",
131 	[DNS_R_CNAME] = "cname",
132 	[DNS_R_BADDB] = "bad database",
133 	[DNS_R_ZONECUT] = "zonecut",
134 	[DNS_R_BADZONE] = "bad zone",
135 	[DNS_R_MOREDATA] = "more data",
136 	[DNS_R_UPTODATE] = "up to date",
137 	[DNS_R_TSIGVERIFYFAILURE] = "tsig verify failure",
138 	[DNS_R_TSIGERRORSET] = "tsig indicates error",
139 	[DNS_R_SIGINVALID] = "RRSIG failed to verify",
140 	[DNS_R_SIGEXPIRED] = "RRSIG has expired",
141 	[DNS_R_SIGFUTURE] = "RRSIG validity period has not begun",
142 	[DNS_R_KEYUNAUTHORIZED] = "key is unauthorized to sign data",
143 	[DNS_R_INVALIDTIME] = "invalid time",
144 	[DNS_R_EXPECTEDTSIG] = "expected a TSIG or SIG(0)",
145 	[DNS_R_UNEXPECTEDTSIG] = "did not expect a TSIG or SIG(0)",
146 	[DNS_R_INVALIDTKEY] = "TKEY is unacceptable",
147 	[DNS_R_HINT] = "hint",
148 	[DNS_R_DROP] = "drop",
149 	[DNS_R_NOTLOADED] = "zone not loaded",
150 	[DNS_R_NCACHENXDOMAIN] = "ncache nxdomain",
151 	[DNS_R_NCACHENXRRSET] = "ncache nxrrset",
152 	[DNS_R_WAIT] = "wait",
153 	[DNS_R_NOTVERIFIEDYET] = "not verified yet",
154 	[DNS_R_NOIDENTITY] = "no identity",
155 	[DNS_R_NOJOURNAL] = "no journal",
156 	[DNS_R_ALIAS] = "alias",
157 	[DNS_R_USETCP] = "use TCP",
158 	[DNS_R_NOVALIDSIG] = "no valid RRSIG",
159 	[DNS_R_NOVALIDNSEC] = "no valid NSEC",
160 	[DNS_R_NOTINSECURE] = "insecurity proof failed",
161 	[DNS_R_UNKNOWNSERVICE] = "unknown service",
162 	[DNS_R_RECOVERABLE] = "recoverable error occurred",
163 	[DNS_R_UNKNOWNOPT] = "unknown opt attribute record",
164 	[DNS_R_UNEXPECTEDID] = "unexpected message id",
165 	[DNS_R_SEENINCLUDE] = "seen include file",
166 	[DNS_R_NOTEXACT] = "not exact",
167 	[DNS_R_BLACKHOLED] = "address blackholed",
168 	[DNS_R_BADALG] = "bad algorithm",
169 	[DNS_R_METATYPE] = "invalid use of a meta type",
170 	[DNS_R_CNAMEANDOTHER] = "CNAME and other data",
171 	[DNS_R_SINGLETON] = "multiple RRs of singleton type",
172 	[DNS_R_HINTNXRRSET] = "hint nxrrset",
173 	[DNS_R_NOMASTERFILE] = "no master file configured",
174 	[DNS_R_UNKNOWNPROTO] = "unknown protocol",
175 	[DNS_R_CLOCKSKEW] = "clocks are unsynchronized",
176 	[DNS_R_BADIXFR] = "IXFR failed",
177 	[DNS_R_NOTAUTHORITATIVE] = "not authoritative",
178 	[DNS_R_NOVALIDKEY] = "no valid KEY",
179 	[DNS_R_OBSOLETE] = "obsolete",
180 	[DNS_R_FROZEN] = "already frozen",
181 	[DNS_R_UNKNOWNFLAG] = "unknown flag",
182 	[DNS_R_EXPECTEDRESPONSE] = "expected a response",
183 	[DNS_R_NOVALIDDS] = "no valid DS",
184 	[DNS_R_NSISADDRESS] = "NS is an address",
185 	[DNS_R_REMOTEFORMERR] = "received FORMERR",
186 	[DNS_R_TRUNCATEDTCP] = "truncated TCP response",
187 	[DNS_R_LAME] = "lame server detected",
188 	[DNS_R_UNEXPECTEDRCODE] = "unexpected RCODE",
189 	[DNS_R_UNEXPECTEDOPCODE] = "unexpected OPCODE",
190 	[DNS_R_CHASEDSSERVERS] = "chase DS servers",
191 	[DNS_R_EMPTYNAME] = "empty name",
192 	[DNS_R_EMPTYWILD] = "empty wild",
193 	[DNS_R_BADBITMAP] = "bad bitmap",
194 	[DNS_R_FROMWILDCARD] = "from wildcard",
195 	[DNS_R_BADOWNERNAME] = "bad owner name (check-names)",
196 	[DNS_R_BADNAME] = "bad name (check-names)",
197 	[DNS_R_DYNAMIC] = "dynamic zone",
198 	[DNS_R_UNKNOWNCOMMAND] = "unknown command",
199 	[DNS_R_MUSTBESECURE] = "must-be-secure",
200 	[DNS_R_COVERINGNSEC] = "covering NSEC record returned",
201 	[DNS_R_MXISADDRESS] = "MX is an address",
202 	[DNS_R_DUPLICATE] = "duplicate query",
203 	[DNS_R_INVALIDNSEC3] = "invalid NSEC3 owner name (wildcard)",
204 	[DNS_R_NOTPRIMARY] = "not primary",
205 	[DNS_R_BROKENCHAIN] = "broken trust chain",
206 	[DNS_R_EXPIRED] = "expired",
207 	[DNS_R_NOTDYNAMIC] = "not dynamic",
208 	[DNS_R_BADEUI] = "bad EUI",
209 	[DNS_R_NTACOVERED] = "covered by negative trust anchor",
210 	[DNS_R_BADCDS] = "bad CDS",
211 	[DNS_R_BADCDNSKEY] = "bad CDNSKEY",
212 	[DNS_R_OPTERR] = "malformed OPT option",
213 	[DNS_R_BADDNSTAP] = "malformed DNSTAP data",
214 	[DNS_R_BADTSIG] = "TSIG in wrong location",
215 	[DNS_R_BADSIG0] = "SIG(0) in wrong location",
216 	[DNS_R_TOOMANYRECORDS] = "too many records",
217 	[DNS_R_VERIFYFAILURE] = "verify failure",
218 	[DNS_R_ATZONETOP] = "at top of zone",
219 	[DNS_R_NOKEYMATCH] = "no matching key found",
220 	[DNS_R_TOOMANYKEYS] = "too many keys matching",
221 	[DNS_R_KEYNOTACTIVE] = "key is not actively signing",
222 	[DNS_R_NSEC3ITERRANGE] = "NSEC3 iterations out of range",
223 	[DNS_R_NSEC3SALTRANGE] = "NSEC3 salt length too high",
224 	[DNS_R_NSEC3BADALG] = "cannot use NSEC3 with key algorithm",
225 	[DNS_R_NSEC3RESALT] = "NSEC3 resalt",
226 	[DNS_R_INCONSISTENTRR] = "inconsistent resource record",
227 	[DNS_R_HAVEPARMKEYS] = "unexpected service parameter keys",
228 	[DNS_R_NOALPN] = "no ALPN",
229 	[DNS_R_NODOHPATH] = "no DOHPATH",
230 	[DNS_R_NOSKRFILE] = "no SKR file",
231 	[DNS_R_NOSKRBUNDLE] = "no available SKR bundle",
232 
233 	[DST_R_UNSUPPORTEDALG] = "algorithm is unsupported",
234 	[DST_R_CRYPTOFAILURE] = "crypto failure",
235 	[DST_R_NOCRYPTO] = "built with no crypto support",
236 	[DST_R_NULLKEY] = "illegal operation for a null key",
237 	[DST_R_INVALIDPUBLICKEY] = "public key is invalid",
238 	[DST_R_INVALIDPRIVATEKEY] = "private key is invalid",
239 	[DST_R_WRITEERROR] = "error occurred writing key to disk",
240 	[DST_R_INVALIDPARAM] = "invalid algorithm specific parameter",
241 	[DST_R_SIGNFAILURE] = "sign failure",
242 	[DST_R_VERIFYFAILURE] = "verify failure",
243 	[DST_R_NOTPUBLICKEY] = "not a public key",
244 	[DST_R_NOTPRIVATEKEY] = "not a private key",
245 	[DST_R_KEYCANNOTCOMPUTESECRET] = "not a key that can compute a secret",
246 	[DST_R_COMPUTESECRETFAILURE] = "failure computing a shared secret",
247 	[DST_R_NORANDOMNESS] = "no randomness available",
248 	[DST_R_BADKEYTYPE] = "bad key type",
249 	[DST_R_NOENGINE] = "no engine",
250 	[DST_R_EXTERNALKEY] = "illegal operation for an external key",
251 
252 	[DNS_R_NOERROR] = "NOERROR",
253 	[DNS_R_FORMERR] = "FORMERR",
254 	[DNS_R_SERVFAIL] = "SERVFAIL",
255 	[DNS_R_NXDOMAIN] = "NXDOMAIN",
256 	[DNS_R_NOTIMP] = "NOTIMP",
257 	[DNS_R_REFUSED] = "REFUSED",
258 	[DNS_R_YXDOMAIN] = "YXDOMAIN",
259 	[DNS_R_YXRRSET] = "YXRRSET",
260 	[DNS_R_NXRRSET] = "NXRRSET",
261 	[DNS_R_NOTAUTH] = "NOTAUTH",
262 	[DNS_R_NOTZONE] = "NOTZONE",
263 	[DNS_R_RCODE11] = "<rcode 11>",
264 	[DNS_R_RCODE12] = "<rcode 12>",
265 	[DNS_R_RCODE13] = "<rcode 13>",
266 	[DNS_R_RCODE14] = "<rcode 14>",
267 	[DNS_R_RCODE15] = "<rcode 15>",
268 	[DNS_R_BADVERS] = "BADVERS",
269 	[DNS_R_BADCOOKIE] = "BADCOOKIE",
270 
271 	[ISCCC_R_UNKNOWNVERSION] = "unknown version",
272 	[ISCCC_R_SYNTAX] = "syntax error",
273 	[ISCCC_R_BADAUTH] = "bad auth",
274 	[ISCCC_R_EXPIRED] = "expired",
275 	[ISCCC_R_CLOCKSKEW] = "clock skew",
276 	[ISCCC_R_DUPLICATE] = "duplicate",
277 	[ISCCC_R_MAXDEPTH] = "max depth",
278 };
279 
280 static const char *identifier[ISC_R_NRESULTS] = {
281 	[ISC_R_SUCCESS] = "ISC_R_SUCCESS",
282 	[ISC_R_NOMEMORY] = "ISC_R_NOMEMORY",
283 	[ISC_R_TIMEDOUT] = "ISC_R_TIMEDOUT",
284 	[ISC_R_NOTHREADS] = "ISC_R_NOTHREADS",
285 	[ISC_R_ADDRNOTAVAIL] = "ISC_R_ADDRNOTAVAIL",
286 	[ISC_R_ADDRINUSE] = "ISC_R_ADDRINUSE",
287 	[ISC_R_NOPERM] = "ISC_R_NOPERM",
288 	[ISC_R_NOCONN] = "ISC_R_NOCONN",
289 	[ISC_R_NETUNREACH] = "ISC_R_NETUNREACH",
290 	[ISC_R_HOSTUNREACH] = "ISC_R_HOSTUNREACH",
291 	[ISC_R_NETDOWN] = "ISC_R_NETDOWN",
292 	[ISC_R_HOSTDOWN] = "ISC_R_HOSTDOWN",
293 	[ISC_R_CONNREFUSED] = "ISC_R_CONNREFUSED",
294 	[ISC_R_NORESOURCES] = "ISC_R_NORESOURCES",
295 	[ISC_R_EOF] = "ISC_R_EOF",
296 	[ISC_R_BOUND] = "ISC_R_BOUND",
297 	[ISC_R_RELOAD] = "ISC_R_RELOAD",
298 	[ISC_R_LOCKBUSY] = "ISC_R_LOCKBUSY",
299 	[ISC_R_EXISTS] = "ISC_R_EXISTS",
300 	[ISC_R_NOSPACE] = "ISC_R_NOSPACE",
301 	[ISC_R_CANCELED] = "ISC_R_CANCELED",
302 	[ISC_R_NOTBOUND] = "ISC_R_NOTBOUND",
303 	[ISC_R_SHUTTINGDOWN] = "ISC_R_SHUTTINGDOWN",
304 	[ISC_R_NOTFOUND] = "ISC_R_NOTFOUND",
305 	[ISC_R_UNEXPECTEDEND] = "ISC_R_UNEXPECTEDEND",
306 	[ISC_R_FAILURE] = "ISC_R_FAILURE",
307 	[ISC_R_IOERROR] = "ISC_R_IOERROR",
308 	[ISC_R_NOTIMPLEMENTED] = "ISC_R_NOTIMPLEMENTED",
309 	[ISC_R_UNBALANCED] = "ISC_R_UNBALANCED",
310 	[ISC_R_NOMORE] = "ISC_R_NOMORE",
311 	[ISC_R_INVALIDFILE] = "ISC_R_INVALIDFILE",
312 	[ISC_R_BADBASE64] = "ISC_R_BADBASE64",
313 	[ISC_R_UNEXPECTEDTOKEN] = "ISC_R_UNEXPECTEDTOKEN",
314 	[ISC_R_QUOTA] = "ISC_R_QUOTA",
315 	[ISC_R_UNEXPECTED] = "ISC_R_UNEXPECTED",
316 	[ISC_R_ALREADYRUNNING] = "ISC_R_ALREADYRUNNING",
317 	[ISC_R_IGNORE] = "ISC_R_IGNORE",
318 	[ISC_R_MASKNONCONTIG] = "ISC_R_MASKNONCONTIG",
319 	[ISC_R_FILENOTFOUND] = "ISC_R_FILENOTFOUND",
320 	[ISC_R_FILEEXISTS] = "ISC_R_FILEEXISTS",
321 	[ISC_R_NOTCONNECTED] = "ISC_R_NOTCONNECTED",
322 	[ISC_R_RANGE] = "ISC_R_RANGE",
323 	[ISC_R_NOENTROPY] = "ISC_R_NOENTROPY",
324 	[ISC_R_MULTICAST] = "ISC_R_MULTICAST",
325 	[ISC_R_NOTFILE] = "ISC_R_NOTFILE",
326 	[ISC_R_NOTDIRECTORY] = "ISC_R_NOTDIRECTORY",
327 	[ISC_R_EMPTY] = "ISC_R_EMPTY",
328 	[ISC_R_FAMILYMISMATCH] = "ISC_R_FAMILYMISMATCH",
329 	[ISC_R_FAMILYNOSUPPORT] = "ISC_R_FAMILYNOSUPPORT",
330 	[ISC_R_BADHEX] = "ISC_R_BADHEX",
331 	[ISC_R_TOOMANYOPENFILES] = "ISC_R_TOOMANYOPENFILES",
332 	[ISC_R_NOTBLOCKING] = "ISC_R_NOTBLOCKING",
333 	[ISC_R_UNBALANCEDQUOTES] = "ISC_R_UNBALANCEDQUOTES",
334 	[ISC_R_INPROGRESS] = "ISC_R_INPROGRESS",
335 	[ISC_R_CONNECTIONRESET] = "ISC_R_CONNECTIONRESET",
336 	[ISC_R_SOFTQUOTA] = "ISC_R_SOFTQUOTA",
337 	[ISC_R_BADNUMBER] = "ISC_R_BADNUMBER",
338 	[ISC_R_DISABLED] = "ISC_R_DISABLED",
339 	[ISC_R_MAXSIZE] = "ISC_R_MAXSIZE",
340 	[ISC_R_BADADDRESSFORM] = "ISC_R_BADADDRESSFORM",
341 	[ISC_R_BADBASE32] = "ISC_R_BADBASE32",
342 	[ISC_R_UNSET] = "ISC_R_UNSET",
343 	[ISC_R_MULTIPLE] = "ISC_R_MULTIPLE",
344 	[ISC_R_WOULDBLOCK] = "ISC_R_WOULDBLOCK",
345 	[ISC_R_COMPLETE] = "ISC_R_COMPLETE",
346 	[ISC_R_CRYPTOFAILURE] = "ISC_R_CRYPTOFAILURE",
347 	[ISC_R_DISCQUOTA] = "ISC_R_DISCQUOTA",
348 	[ISC_R_DISCFULL] = "ISC_R_DISCFULL",
349 	[ISC_R_DEFAULT] = "ISC_R_DEFAULT",
350 	[ISC_R_IPV4PREFIX] = "ISC_R_IPV4PREFIX",
351 	[ISC_R_TLSERROR] = "ISC_R_TLSERROR",
352 	[ISC_R_TLSBADPEERCERT] = "ISC_R_TLSBADPEERCERT",
353 	[ISC_R_HTTP2ALPNERROR] = "ISC_R_HTTP2ALPNERROR",
354 	[ISC_R_DOTALPNERROR] = "ISC_R_DOTALPNERROR",
355 	[DNS_R_LABELTOOLONG] = "DNS_R_LABELTOOLONG",
356 	[DNS_R_BADESCAPE] = "DNS_R_BADESCAPE",
357 	[DNS_R_EMPTYLABEL] = "DNS_R_EMPTYLABEL",
358 	[DNS_R_BADDOTTEDQUAD] = "DNS_R_BADDOTTEDQUAD",
359 	[DNS_R_INVALIDNS] = "DNS_R_INVALIDNS",
360 	[DNS_R_UNKNOWN] = "DNS_R_UNKNOWN",
361 	[DNS_R_BADLABELTYPE] = "DNS_R_BADLABELTYPE",
362 	[DNS_R_BADPOINTER] = "DNS_R_BADPOINTER",
363 	[DNS_R_TOOMANYHOPS] = "DNS_R_TOOMANYHOPS",
364 	[DNS_R_DISALLOWED] = "DNS_R_DISALLOWED",
365 	[DNS_R_EXTRATOKEN] = "DNS_R_EXTRATOKEN",
366 	[DNS_R_EXTRADATA] = "DNS_R_EXTRADATA",
367 	[DNS_R_TEXTTOOLONG] = "DNS_R_TEXTTOOLONG",
368 	[DNS_R_NOTZONETOP] = "DNS_R_NOTZONETOP",
369 	[DNS_R_SYNTAX] = "DNS_R_SYNTAX",
370 	[DNS_R_BADCKSUM] = "DNS_R_BADCKSUM",
371 	[DNS_R_BADAAAA] = "DNS_R_BADAAAA",
372 	[DNS_R_NOOWNER] = "DNS_R_NOOWNER",
373 	[DNS_R_NOTTL] = "DNS_R_NOTTL",
374 	[DNS_R_BADCLASS] = "DNS_R_BADCLASS",
375 	[DNS_R_NAMETOOLONG] = "DNS_R_NAMETOOLONG",
376 	[DNS_R_PARTIALMATCH] = "DNS_R_PARTIALMATCH",
377 	[DNS_R_NEWORIGIN] = "DNS_R_NEWORIGIN",
378 	[DNS_R_UNCHANGED] = "DNS_R_UNCHANGED",
379 	[DNS_R_BADTTL] = "DNS_R_BADTTL",
380 	[DNS_R_NOREDATA] = "DNS_R_NOREDATA",
381 	[DNS_R_CONTINUE] = "DNS_R_CONTINUE",
382 	[DNS_R_DELEGATION] = "DNS_R_DELEGATION",
383 	[DNS_R_GLUE] = "DNS_R_GLUE",
384 	[DNS_R_DNAME] = "DNS_R_DNAME",
385 	[DNS_R_CNAME] = "DNS_R_CNAME",
386 	[DNS_R_BADDB] = "DNS_R_BADDB",
387 	[DNS_R_ZONECUT] = "DNS_R_ZONECUT",
388 	[DNS_R_BADZONE] = "DNS_R_BADZONE",
389 	[DNS_R_MOREDATA] = "DNS_R_MOREDATA",
390 	[DNS_R_UPTODATE] = "DNS_R_UPTODATE",
391 	[DNS_R_TSIGVERIFYFAILURE] = "DNS_R_TSIGVERIFYFAILURE",
392 	[DNS_R_TSIGERRORSET] = "DNS_R_TSIGERRORSET",
393 	[DNS_R_SIGINVALID] = "DNS_R_SIGINVALID",
394 	[DNS_R_SIGEXPIRED] = "DNS_R_SIGEXPIRED",
395 	[DNS_R_SIGFUTURE] = "DNS_R_SIGFUTURE",
396 	[DNS_R_KEYUNAUTHORIZED] = "DNS_R_KEYUNAUTHORIZED",
397 	[DNS_R_INVALIDTIME] = "DNS_R_INVALIDTIME",
398 	[DNS_R_EXPECTEDTSIG] = "DNS_R_EXPECTEDTSIG",
399 	[DNS_R_UNEXPECTEDTSIG] = "DNS_R_UNEXPECTEDTSIG",
400 	[DNS_R_INVALIDTKEY] = "DNS_R_INVALIDTKEY",
401 	[DNS_R_HINT] = "DNS_R_HINT",
402 	[DNS_R_DROP] = "DNS_R_DROP",
403 	[DNS_R_NOTLOADED] = "DNS_R_NOTLOADED",
404 	[DNS_R_NCACHENXDOMAIN] = "DNS_R_NCACHENXDOMAIN",
405 	[DNS_R_NCACHENXRRSET] = "DNS_R_NCACHENXRRSET",
406 	[DNS_R_WAIT] = "DNS_R_WAIT",
407 	[DNS_R_NOTVERIFIEDYET] = "DNS_R_NOTVERIFIEDYET",
408 	[DNS_R_NOIDENTITY] = "DNS_R_NOIDENTITY",
409 	[DNS_R_NOJOURNAL] = "DNS_R_NOJOURNAL",
410 	[DNS_R_ALIAS] = "DNS_R_ALIAS",
411 	[DNS_R_USETCP] = "DNS_R_USETCP",
412 	[DNS_R_NOVALIDSIG] = "DNS_R_NOVALIDSIG",
413 	[DNS_R_NOVALIDNSEC] = "DNS_R_NOVALIDNSEC",
414 	[DNS_R_NOTINSECURE] = "DNS_R_NOTINSECURE",
415 	[DNS_R_UNKNOWNSERVICE] = "DNS_R_UNKNOWNSERVICE",
416 	[DNS_R_RECOVERABLE] = "DNS_R_RECOVERABLE",
417 	[DNS_R_UNKNOWNOPT] = "DNS_R_UNKNOWNOPT",
418 	[DNS_R_UNEXPECTEDID] = "DNS_R_UNEXPECTEDID",
419 	[DNS_R_SEENINCLUDE] = "DNS_R_SEENINCLUDE",
420 	[DNS_R_NOTEXACT] = "DNS_R_NOTEXACT",
421 	[DNS_R_BLACKHOLED] = "DNS_R_BLACKHOLED",
422 	[DNS_R_BADALG] = "DNS_R_BADALG",
423 	[DNS_R_METATYPE] = "DNS_R_METATYPE",
424 	[DNS_R_CNAMEANDOTHER] = "DNS_R_CNAMEANDOTHER",
425 	[DNS_R_SINGLETON] = "DNS_R_SINGLETON",
426 	[DNS_R_HINTNXRRSET] = "DNS_R_HINTNXRRSET",
427 	[DNS_R_NOMASTERFILE] = "DNS_R_NOMASTERFILE",
428 	[DNS_R_UNKNOWNPROTO] = "DNS_R_UNKNOWNPROTO",
429 	[DNS_R_CLOCKSKEW] = "DNS_R_CLOCKSKEW",
430 	[DNS_R_BADIXFR] = "DNS_R_BADIXFR",
431 	[DNS_R_NOTAUTHORITATIVE] = "DNS_R_NOTAUTHORITATIVE",
432 	[DNS_R_NOVALIDKEY] = "DNS_R_NOVALIDKEY",
433 	[DNS_R_OBSOLETE] = "DNS_R_OBSOLETE",
434 	[DNS_R_FROZEN] = "DNS_R_FROZEN",
435 	[DNS_R_UNKNOWNFLAG] = "DNS_R_UNKNOWNFLAG",
436 	[DNS_R_EXPECTEDRESPONSE] = "DNS_R_EXPECTEDRESPONSE",
437 	[DNS_R_NOVALIDDS] = "DNS_R_NOVALIDDS",
438 	[DNS_R_NSISADDRESS] = "DNS_R_NSISADDRESS",
439 	[DNS_R_REMOTEFORMERR] = "DNS_R_REMOTEFORMERR",
440 	[DNS_R_TRUNCATEDTCP] = "DNS_R_TRUNCATEDTCP",
441 	[DNS_R_LAME] = "DNS_R_LAME",
442 	[DNS_R_UNEXPECTEDRCODE] = "DNS_R_UNEXPECTEDRCODE",
443 	[DNS_R_UNEXPECTEDOPCODE] = "DNS_R_UNEXPECTEDOPCODE",
444 	[DNS_R_CHASEDSSERVERS] = "DNS_R_CHASEDSSERVERS",
445 	[DNS_R_EMPTYNAME] = "DNS_R_EMPTYNAME",
446 	[DNS_R_EMPTYWILD] = "DNS_R_EMPTYWILD",
447 	[DNS_R_BADBITMAP] = "DNS_R_BADBITMAP",
448 	[DNS_R_FROMWILDCARD] = "DNS_R_FROMWILDCARD",
449 	[DNS_R_BADOWNERNAME] = "DNS_R_BADOWNERNAME",
450 	[DNS_R_BADNAME] = "DNS_R_BADNAME",
451 	[DNS_R_DYNAMIC] = "DNS_R_DYNAMIC",
452 	[DNS_R_UNKNOWNCOMMAND] = "DNS_R_UNKNOWNCOMMAND",
453 	[DNS_R_MUSTBESECURE] = "DNS_R_MUSTBESECURE",
454 	[DNS_R_COVERINGNSEC] = "DNS_R_COVERINGNSEC",
455 	[DNS_R_MXISADDRESS] = "DNS_R_MXISADDRESS",
456 	[DNS_R_DUPLICATE] = "DNS_R_DUPLICATE",
457 	[DNS_R_INVALIDNSEC3] = "DNS_R_INVALIDNSEC3",
458 	[DNS_R_NOTPRIMARY] = "DNS_R_NOTPRIMARY",
459 	[DNS_R_BROKENCHAIN] = "DNS_R_BROKENCHAIN",
460 	[DNS_R_EXPIRED] = "DNS_R_EXPIRED",
461 	[DNS_R_NOTDYNAMIC] = "DNS_R_NOTDYNAMIC",
462 	[DNS_R_BADEUI] = "DNS_R_BADEUI",
463 	[DNS_R_NTACOVERED] = "DNS_R_NTACOVERED",
464 	[DNS_R_BADCDS] = "DNS_R_BADCDS",
465 	[DNS_R_BADCDNSKEY] = "DNS_R_BADCDNSKEY",
466 	[DNS_R_OPTERR] = "DNS_R_OPTERR",
467 	[DNS_R_BADDNSTAP] = "DNS_R_BADDNSTAP",
468 	[DNS_R_BADTSIG] = "DNS_R_BADTSIG",
469 	[DNS_R_BADSIG0] = "DNS_R_BADSIG0",
470 	[DNS_R_TOOMANYRECORDS] = "DNS_R_TOOMANYRECORDS",
471 	[DNS_R_VERIFYFAILURE] = "DNS_R_VERIFYFAILURE",
472 	[DNS_R_ATZONETOP] = "DNS_R_ATZONETOP",
473 	[DNS_R_NOKEYMATCH] = "DNS_R_NOKEYMATCH",
474 	[DNS_R_TOOMANYKEYS] = "DNS_R_TOOMANYKEYS",
475 	[DNS_R_KEYNOTACTIVE] = "DNS_R_KEYNOTACTIVE",
476 	[DNS_R_NSEC3ITERRANGE] = "DNS_R_NSEC3ITERRANGE",
477 	[DNS_R_NSEC3SALTRANGE] = "DNS_R_NSEC3SALTRANGE",
478 	[DNS_R_NSEC3BADALG] = "DNS_R_NSEC3BADALG",
479 	[DNS_R_NSEC3RESALT] = "DNS_R_NSEC3RESALT",
480 	[DNS_R_INCONSISTENTRR] = "DNS_R_INCONSISTENTRR",
481 	[DNS_R_HAVEPARMKEYS] = "DNS_R_HAVEPARMKEYS",
482 	[DNS_R_NOALPN] = "DNS_R_NOALPN",
483 	[DNS_R_NODOHPATH] = "DNS_R_NODOHPATH",
484 	[DNS_R_NOSKRFILE] = "DNS_R_NOSKRFILE",
485 	[DNS_R_NOSKRBUNDLE] = "DNS_R_NOSKRBUNDLE",
486 
487 	[DST_R_UNSUPPORTEDALG] = "DST_R_UNSUPPORTEDALG",
488 	[DST_R_CRYPTOFAILURE] = "DST_R_CRYPTOFAILURE",
489 	[DST_R_NOCRYPTO] = "DST_R_NOCRYPTO",
490 	[DST_R_NULLKEY] = "DST_R_NULLKEY",
491 	[DST_R_INVALIDPUBLICKEY] = "DST_R_INVALIDPUBLICKEY",
492 	[DST_R_INVALIDPRIVATEKEY] = "DST_R_INVALIDPRIVATEKEY",
493 	[DST_R_WRITEERROR] = "DST_R_WRITEERROR",
494 	[DST_R_INVALIDPARAM] = "DST_R_INVALIDPARAM",
495 	[DST_R_SIGNFAILURE] = "DST_R_SIGNFAILURE",
496 	[DST_R_VERIFYFAILURE] = "DST_R_VERIFYFAILURE",
497 	[DST_R_NOTPUBLICKEY] = "DST_R_NOTPUBLICKEY",
498 	[DST_R_NOTPRIVATEKEY] = "DST_R_NOTPRIVATEKEY",
499 	[DST_R_KEYCANNOTCOMPUTESECRET] = "DST_R_KEYCANNOTCOMPUTESECRET",
500 	[DST_R_COMPUTESECRETFAILURE] = "DST_R_COMPUTESECRETFAILURE",
501 	[DST_R_NORANDOMNESS] = "DST_R_NORANDOMNESS",
502 	[DST_R_BADKEYTYPE] = "DST_R_BADKEYTYPE",
503 	[DST_R_NOENGINE] = "DST_R_NOENGINE",
504 	[DST_R_EXTERNALKEY] = "DST_R_EXTERNALKEY",
505 
506 	[DNS_R_NOERROR] = "DNS_R_NOERROR",
507 	[DNS_R_FORMERR] = "DNS_R_FORMERR",
508 	[DNS_R_SERVFAIL] = "DNS_R_SERVFAIL",
509 	[DNS_R_NXDOMAIN] = "DNS_R_NXDOMAIN",
510 	[DNS_R_NOTIMP] = "DNS_R_NOTIMP",
511 	[DNS_R_REFUSED] = "DNS_R_REFUSED",
512 	[DNS_R_YXDOMAIN] = "DNS_R_YXDOMAIN",
513 	[DNS_R_YXRRSET] = "DNS_R_YXRRSET",
514 	[DNS_R_NXRRSET] = "DNS_R_NXRRSET",
515 	[DNS_R_NOTAUTH] = "DNS_R_NOTAUTH",
516 	[DNS_R_NOTZONE] = "DNS_R_NOTZONE",
517 	[DNS_R_RCODE11] = "DNS_R_RCODE11",
518 	[DNS_R_RCODE12] = "RNS_R_RCODE12",
519 	[DNS_R_RCODE13] = "DNS_R_RCODE13",
520 	[DNS_R_RCODE14] = "DNS_R_RCODE14",
521 	[DNS_R_RCODE15] = "DNS_R_RCODE15",
522 	[DNS_R_BADVERS] = "DNS_R_BADVERS",
523 	[DNS_R_BADCOOKIE] = "DNS_R_BADCOOKIE",
524 
525 	[ISCCC_R_UNKNOWNVERSION] = "ISCCC_R_UNKNOWNVERSION",
526 	[ISCCC_R_SYNTAX] = "ISCCC_R_SYNTAX",
527 	[ISCCC_R_BADAUTH] = "ISCCC_R_BADAUTH",
528 	[ISCCC_R_EXPIRED] = "ISCCC_R_EXPIRED",
529 	[ISCCC_R_CLOCKSKEW] = "ISCCC_R_CLOCKSKEW",
530 	[ISCCC_R_DUPLICATE] = "ISCCC_R_DUPLICATE",
531 	[ISCCC_R_MAXDEPTH] = "ISCCC_R_MAXDEPTH",
532 };
533 
534 STATIC_ASSERT((DNS_R_SERVFAIL - DNS_R_NOERROR == 2),
535 	      "DNS_R_NOERROR has wrong value");
536 
537 STATIC_ASSERT((DNS_R_BADVERS - DNS_R_NOERROR == 16),
538 	      "DNS_R_BADVERS has wrong value");
539 
540 STATIC_ASSERT((ISC_R_NRESULTS < INT32_MAX), "result.h enum too big");
541 
542 const char *
543 isc_result_totext(isc_result_t result) {
544 	return description[result];
545 }
546 
547 const char *
548 isc_result_toid(isc_result_t result) {
549 	return identifier[result];
550 }
551