xref: /netbsd-src/external/mpl/bind/dist/lib/isc/include/isc/result.h (revision bcda20f65a8566e103791ec395f7f499ef322704)
1 /*	$NetBSD: result.h,v 1.12 2025/01/26 16:25:42 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 isc/result.h */
19 
20 #include <inttypes.h>
21 
22 #include <isc/lang.h>
23 
24 typedef enum isc_result {
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_SUSPEND = ISC_R_RELOAD, /*%< alias of 'reload' */
43 	ISC_R_LOCKBUSY,		      /*%< lock busy */
44 	ISC_R_EXISTS,		      /*%< already exists */
45 	ISC_R_NOSPACE,		      /*%< ran out of space */
46 	ISC_R_CANCELED,		      /*%< operation canceled */
47 	ISC_R_NOTBOUND,		      /*%< socket is not bound */
48 	ISC_R_SHUTTINGDOWN,	      /*%< shutting down */
49 	ISC_R_NOTFOUND,		      /*%< not found */
50 	ISC_R_UNEXPECTEDEND,	      /*%< unexpected end of input */
51 	ISC_R_FAILURE,		      /*%< generic failure */
52 	ISC_R_IOERROR,		      /*%< I/O error */
53 	ISC_R_NOTIMPLEMENTED,	      /*%< not implemented */
54 	ISC_R_UNBALANCED,	      /*%< unbalanced parentheses */
55 	ISC_R_NOMORE,		      /*%< no more */
56 	ISC_R_INVALIDFILE,	      /*%< invalid file */
57 	ISC_R_BADBASE64,	      /*%< bad base64 encoding */
58 	ISC_R_UNEXPECTEDTOKEN,	      /*%< unexpected token */
59 	ISC_R_QUOTA,		      /*%< quota reached */
60 	ISC_R_UNEXPECTED,	      /*%< unexpected error */
61 	ISC_R_ALREADYRUNNING,	      /*%< already running */
62 	ISC_R_IGNORE,		      /*%< ignore */
63 	ISC_R_MASKNONCONTIG,	      /*%< addr mask not contiguous */
64 	ISC_R_FILENOTFOUND,	      /*%< file not found */
65 	ISC_R_FILEEXISTS,	      /*%< file already exists */
66 	ISC_R_NOTCONNECTED,	      /*%< socket is not connected */
67 	ISC_R_RANGE,		      /*%< out of range */
68 	ISC_R_NOENTROPY,	      /*%< out of entropy */
69 	ISC_R_MULTICAST,	      /*%< invalid use of multicast */
70 	ISC_R_NOTFILE,		      /*%< not a file */
71 	ISC_R_NOTDIRECTORY,	      /*%< not a directory */
72 	ISC_R_EMPTY,		      /*%< queue is empty */
73 	ISC_R_FAMILYMISMATCH,	      /*%< address family mismatch */
74 	ISC_R_FAMILYNOSUPPORT,	      /*%< AF not supported */
75 	ISC_R_BADHEX,		      /*%< bad hex encoding */
76 	ISC_R_TOOMANYOPENFILES,	      /*%< too many open files */
77 	ISC_R_NOTBLOCKING,	      /*%< not blocking */
78 	ISC_R_UNBALANCEDQUOTES,	      /*%< unbalanced quotes */
79 	ISC_R_INPROGRESS,	      /*%< operation in progress */
80 	ISC_R_CONNECTIONRESET,	      /*%< connection reset */
81 	ISC_R_SOFTQUOTA,	      /*%< soft quota reached */
82 	ISC_R_BADNUMBER,	      /*%< not a valid number */
83 	ISC_R_DISABLED,		      /*%< disabled */
84 	ISC_R_MAXSIZE,		      /*%< max size */
85 	ISC_R_BADADDRESSFORM,	      /*%< invalid address format */
86 	ISC_R_BADBASE32,	      /*%< bad base32 encoding */
87 	ISC_R_UNSET,		      /*%< unset */
88 	ISC_R_MULTIPLE,		      /*%< multiple */
89 	ISC_R_WOULDBLOCK,	      /*%< would block */
90 	ISC_R_COMPLETE,		      /*%< complete */
91 	ISC_R_CRYPTOFAILURE,	      /*%< cryptography library failure */
92 	ISC_R_DISCQUOTA,	      /*%< disc quota */
93 	ISC_R_DISCFULL,		      /*%< disc full */
94 	ISC_R_DEFAULT,		      /*%< default */
95 	ISC_R_IPV4PREFIX,	      /*%< IPv4 prefix */
96 	ISC_R_TLSERROR,		      /*%< TLS error */
97 	ISC_R_TLSBADPEERCERT, /*%< TLS peer certificate verification failed */
98 	ISC_R_HTTP2ALPNERROR, /*%< ALPN for HTTP/2 failed */
99 	ISC_R_DOTALPNERROR,   /*%< ALPN for DoT failed */
100 	ISC_R_INVALIDPROTO,   /*%< invalid protocol */
101 
102 	DNS_R_LABELTOOLONG,
103 	DNS_R_BADESCAPE,
104 	DNS_R_EMPTYLABEL,
105 	DNS_R_BADDOTTEDQUAD,
106 	DNS_R_INVALIDNS,
107 	DNS_R_UNKNOWN,
108 	DNS_R_BADLABELTYPE,
109 	DNS_R_BADPOINTER,
110 	DNS_R_TOOMANYHOPS,
111 	DNS_R_DISALLOWED,
112 	DNS_R_EXTRATOKEN,
113 	DNS_R_EXTRADATA,
114 	DNS_R_TEXTTOOLONG,
115 	DNS_R_NOTZONETOP,
116 	DNS_R_SYNTAX,
117 	DNS_R_BADCKSUM,
118 	DNS_R_BADAAAA,
119 	DNS_R_NOOWNER,
120 	DNS_R_NOTTL,
121 	DNS_R_BADCLASS,
122 	DNS_R_NAMETOOLONG,
123 	DNS_R_PARTIALMATCH,
124 	DNS_R_NEWORIGIN,
125 	DNS_R_UNCHANGED,
126 	DNS_R_BADTTL,
127 	DNS_R_NOREDATA,
128 	DNS_R_CONTINUE,
129 	DNS_R_DELEGATION,
130 	DNS_R_GLUE,
131 	DNS_R_DNAME,
132 	DNS_R_CNAME,
133 	DNS_R_BADDB,
134 	DNS_R_ZONECUT,
135 	DNS_R_BADZONE,
136 	DNS_R_MOREDATA,
137 	DNS_R_UPTODATE,
138 	DNS_R_TSIGVERIFYFAILURE,
139 	DNS_R_TSIGERRORSET,
140 	DNS_R_SIGINVALID,
141 	DNS_R_SIGEXPIRED,
142 	DNS_R_SIGFUTURE,
143 	DNS_R_KEYUNAUTHORIZED,
144 	DNS_R_INVALIDTIME,
145 	DNS_R_EXPECTEDTSIG,
146 	DNS_R_UNEXPECTEDTSIG,
147 	DNS_R_INVALIDTKEY,
148 	DNS_R_HINT,
149 	DNS_R_DROP,
150 	DNS_R_NOTLOADED,
151 	DNS_R_NCACHENXDOMAIN,
152 	DNS_R_NCACHENXRRSET,
153 	DNS_R_WAIT,
154 	DNS_R_NOTVERIFIEDYET,
155 	DNS_R_NOIDENTITY,
156 	DNS_R_NOJOURNAL,
157 	DNS_R_ALIAS,
158 	DNS_R_USETCP,
159 	DNS_R_NOVALIDSIG,
160 	DNS_R_NOVALIDNSEC,
161 	DNS_R_NOTINSECURE,
162 	DNS_R_UNKNOWNSERVICE,
163 	DNS_R_RECOVERABLE,
164 	DNS_R_UNKNOWNOPT,
165 	DNS_R_UNEXPECTEDID,
166 	DNS_R_SEENINCLUDE,
167 	DNS_R_NOTEXACT,
168 	DNS_R_BLACKHOLED,
169 	DNS_R_BADALG,
170 	DNS_R_METATYPE,
171 	DNS_R_CNAMEANDOTHER,
172 	DNS_R_SINGLETON,
173 	DNS_R_HINTNXRRSET,
174 	DNS_R_NOMASTERFILE,
175 	DNS_R_UNKNOWNPROTO,
176 	DNS_R_CLOCKSKEW,
177 	DNS_R_BADIXFR,
178 	DNS_R_NOTAUTHORITATIVE,
179 	DNS_R_NOVALIDKEY,
180 	DNS_R_OBSOLETE,
181 	DNS_R_FROZEN,
182 	DNS_R_UNKNOWNFLAG,
183 	DNS_R_EXPECTEDRESPONSE,
184 	DNS_R_NOVALIDDS,
185 	DNS_R_NSISADDRESS,
186 	DNS_R_REMOTEFORMERR,
187 	DNS_R_TRUNCATEDTCP,
188 	DNS_R_LAME,
189 	DNS_R_UNEXPECTEDRCODE,
190 	DNS_R_UNEXPECTEDOPCODE,
191 	DNS_R_CHASEDSSERVERS,
192 	DNS_R_EMPTYNAME,
193 	DNS_R_EMPTYWILD,
194 	DNS_R_BADBITMAP,
195 	DNS_R_FROMWILDCARD,
196 	DNS_R_BADOWNERNAME,
197 	DNS_R_BADNAME,
198 	DNS_R_DYNAMIC,
199 	DNS_R_UNKNOWNCOMMAND,
200 	DNS_R_MUSTBESECURE,
201 	DNS_R_COVERINGNSEC,
202 	DNS_R_MXISADDRESS,
203 	DNS_R_DUPLICATE,
204 	DNS_R_INVALIDNSEC3,
205 	DNS_R_NOTPRIMARY,
206 	DNS_R_BROKENCHAIN,
207 	DNS_R_EXPIRED,
208 	DNS_R_NOTDYNAMIC,
209 	DNS_R_BADEUI,
210 	DNS_R_NTACOVERED,
211 	DNS_R_BADCDS,
212 	DNS_R_BADCDNSKEY,
213 	DNS_R_OPTERR,
214 	DNS_R_BADDNSTAP,
215 	DNS_R_BADTSIG,
216 	DNS_R_BADSIG0,
217 	DNS_R_TOOMANYRECORDS,
218 	DNS_R_VERIFYFAILURE,
219 	DNS_R_ATZONETOP,
220 	DNS_R_NOKEYMATCH,
221 	DNS_R_TOOMANYKEYS,
222 	DNS_R_KEYNOTACTIVE,
223 	DNS_R_NSEC3ITERRANGE,
224 	DNS_R_NSEC3SALTRANGE,
225 	DNS_R_NSEC3BADALG,
226 	DNS_R_NSEC3RESALT,
227 	DNS_R_INCONSISTENTRR,
228 	DNS_R_HAVEPARMKEYS,
229 	DNS_R_NOALPN,
230 	DNS_R_NODOHPATH,
231 	DNS_R_NOSKRFILE,
232 	DNS_R_NOSKRBUNDLE,
233 
234 	DST_R_UNSUPPORTEDALG,
235 	DST_R_CRYPTOFAILURE,
236 	/* compat */
237 	DST_R_OPENSSLFAILURE = DST_R_CRYPTOFAILURE,
238 	DST_R_NOCRYPTO,
239 	DST_R_NULLKEY,
240 	DST_R_INVALIDPUBLICKEY,
241 	DST_R_INVALIDPRIVATEKEY,
242 	DST_R_WRITEERROR,
243 	DST_R_INVALIDPARAM,
244 	DST_R_SIGNFAILURE,
245 	DST_R_VERIFYFAILURE,
246 	DST_R_NOTPUBLICKEY,
247 	DST_R_NOTPRIVATEKEY,
248 	DST_R_KEYCANNOTCOMPUTESECRET,
249 	DST_R_COMPUTESECRETFAILURE,
250 	DST_R_NORANDOMNESS,
251 	DST_R_BADKEYTYPE,
252 	DST_R_NOENGINE,
253 	DST_R_EXTERNALKEY,
254 
255 	DNS_R_NOERROR,
256 	DNS_R_FORMERR,
257 	DNS_R_SERVFAIL,
258 	DNS_R_NXDOMAIN,
259 	DNS_R_NOTIMP,
260 	DNS_R_REFUSED,
261 	DNS_R_YXDOMAIN,
262 	DNS_R_YXRRSET,
263 	DNS_R_NXRRSET,
264 	DNS_R_NOTAUTH,
265 	DNS_R_NOTZONE,
266 	DNS_R_RCODE11,
267 	DNS_R_RCODE12,
268 	DNS_R_RCODE13,
269 	DNS_R_RCODE14,
270 	DNS_R_RCODE15,
271 	DNS_R_BADVERS,
272 	DNS_R_BADCOOKIE = DNS_R_NOERROR + 23,
273 
274 	ISCCC_R_UNKNOWNVERSION,
275 	ISCCC_R_SYNTAX,
276 	ISCCC_R_BADAUTH,
277 	ISCCC_R_EXPIRED,
278 	ISCCC_R_CLOCKSKEW,
279 	ISCCC_R_DUPLICATE,
280 	ISCCC_R_MAXDEPTH,
281 
282 	ISC_R_NRESULTS, /*% The number of results. */
283 	ISC_R_MAKE_ENUM_32BIT = INT32_MAX,
284 } isc_result_t;
285 
286 ISC_LANG_BEGINDECLS
287 
288 const char *isc_result_totext(isc_result_t);
289 /*%<
290  * Convert an isc_result_t into a string message describing the result.
291  */
292 
293 const char *isc_result_toid(isc_result_t);
294 /*%<
295  * Convert an isc_result_t into a string identifier such as
296  * "ISC_R_SUCCESS".
297  */
298 
299 ISC_LANG_ENDDECLS
300