1 /* $NetBSD: result.h,v 1.15 2026/06/19 20:10:02 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 ISC_R_DEADLOCK, /*%< deadlock found */ 102 103 DNS_R_LABELTOOLONG, 104 DNS_R_BADESCAPE, 105 DNS_R_EMPTYLABEL, 106 DNS_R_BADDOTTEDQUAD, 107 DNS_R_INVALIDNS, 108 DNS_R_UNKNOWN, 109 DNS_R_BADLABELTYPE, 110 DNS_R_BADPOINTER, 111 DNS_R_TOOMANYHOPS, 112 DNS_R_DISALLOWED, 113 DNS_R_EXTRATOKEN, 114 DNS_R_EXTRADATA, 115 DNS_R_TEXTTOOLONG, 116 DNS_R_NOTZONETOP, 117 DNS_R_SYNTAX, 118 DNS_R_BADCKSUM, 119 DNS_R_BADAAAA, 120 DNS_R_NOOWNER, 121 DNS_R_NOTTL, 122 DNS_R_BADCLASS, 123 DNS_R_NAMETOOLONG, 124 DNS_R_PARTIALMATCH, 125 DNS_R_NEWORIGIN, 126 DNS_R_UNCHANGED, 127 DNS_R_BADTTL, 128 DNS_R_NOREDATA, 129 DNS_R_CONTINUE, 130 DNS_R_DELEGATION, 131 DNS_R_GLUE, 132 DNS_R_DNAME, 133 DNS_R_CNAME, 134 DNS_R_BADDB, 135 DNS_R_ZONECUT, 136 DNS_R_BADZONE, 137 DNS_R_MOREDATA, 138 DNS_R_UPTODATE, 139 DNS_R_TSIGVERIFYFAILURE, 140 DNS_R_TSIGERRORSET, 141 DNS_R_SIGINVALID, 142 DNS_R_SIGEXPIRED, 143 DNS_R_SIGFUTURE, 144 DNS_R_KEYUNAUTHORIZED, 145 DNS_R_INVALIDTIME, 146 DNS_R_EXPECTEDTSIG, 147 DNS_R_UNEXPECTEDTSIG, 148 DNS_R_INVALIDTKEY, 149 DNS_R_HINT, 150 DNS_R_DROP, 151 DNS_R_NOTLOADED, 152 DNS_R_NCACHENXDOMAIN, 153 DNS_R_NCACHENXRRSET, 154 DNS_R_WAIT, 155 DNS_R_NOTVERIFIEDYET, 156 DNS_R_NOIDENTITY, 157 DNS_R_NOJOURNAL, 158 DNS_R_ALIAS, 159 DNS_R_USETCP, 160 DNS_R_NOVALIDSIG, 161 DNS_R_NOVALIDNSEC, 162 DNS_R_NOTINSECURE, 163 DNS_R_UNKNOWNSERVICE, 164 DNS_R_RECOVERABLE, 165 DNS_R_UNKNOWNOPT, 166 DNS_R_UNEXPECTEDID, 167 DNS_R_SEENINCLUDE, 168 DNS_R_NOTEXACT, 169 DNS_R_BLACKHOLED, 170 DNS_R_BADALG, 171 DNS_R_METATYPE, 172 DNS_R_CNAMEANDOTHER, 173 DNS_R_SINGLETON, 174 DNS_R_HINTNXRRSET, 175 DNS_R_NOMASTERFILE, 176 DNS_R_UNKNOWNPROTO, 177 DNS_R_CLOCKSKEW, 178 DNS_R_BADIXFR, 179 DNS_R_NOTAUTHORITATIVE, 180 DNS_R_NOVALIDKEY, 181 DNS_R_OBSOLETE, 182 DNS_R_FROZEN, 183 DNS_R_UNKNOWNFLAG, 184 DNS_R_EXPECTEDRESPONSE, 185 DNS_R_NOVALIDDS, 186 DNS_R_NSISADDRESS, 187 DNS_R_REMOTEFORMERR, 188 DNS_R_TRUNCATEDTCP, 189 DNS_R_LAME, 190 DNS_R_UNEXPECTEDRCODE, 191 DNS_R_UNEXPECTEDOPCODE, 192 DNS_R_CHASEDSSERVERS, 193 DNS_R_EMPTYNAME, 194 DNS_R_EMPTYWILD, 195 DNS_R_BADBITMAP, 196 DNS_R_FROMWILDCARD, 197 DNS_R_BADOWNERNAME, 198 DNS_R_BADNAME, 199 DNS_R_DYNAMIC, 200 DNS_R_UNKNOWNCOMMAND, 201 DNS_R_MUSTBESECURE, 202 DNS_R_COVERINGNSEC, 203 DNS_R_MXISADDRESS, 204 DNS_R_DUPLICATE, 205 DNS_R_INVALIDNSEC3, 206 DNS_R_NOTPRIMARY, 207 DNS_R_BROKENCHAIN, 208 DNS_R_EXPIRED, 209 DNS_R_NOTDYNAMIC, 210 DNS_R_BADEUI, 211 DNS_R_NTACOVERED, 212 DNS_R_BADCDS, 213 DNS_R_BADCDNSKEY, 214 DNS_R_OPTERR, 215 DNS_R_BADDNSTAP, 216 DNS_R_BADTSIG, 217 DNS_R_BADSIG0, 218 DNS_R_TOOMANYRECORDS, 219 DNS_R_VERIFYFAILURE, 220 DNS_R_ATZONETOP, 221 DNS_R_NOKEYMATCH, 222 DNS_R_TOOMANYKEYS, 223 DNS_R_KEYNOTACTIVE, 224 DNS_R_NSEC3ITERRANGE, 225 DNS_R_NSEC3SALTRANGE, 226 DNS_R_NSEC3BADALG, 227 DNS_R_NSEC3RESALT, 228 DNS_R_INCONSISTENTRR, 229 DNS_R_HAVEPARMKEYS, 230 DNS_R_NOALPN, 231 DNS_R_NODOHPATH, 232 DNS_R_NOSKRFILE, 233 DNS_R_NOSKRBUNDLE, 234 DNS_R_LOOPDETECTED, 235 DNS_R_MISMATCH, 236 237 DST_R_UNSUPPORTEDALG, 238 DST_R_CRYPTOFAILURE, 239 /* compat */ 240 DST_R_OPENSSLFAILURE = DST_R_CRYPTOFAILURE, 241 DST_R_NOCRYPTO, 242 DST_R_NULLKEY, 243 DST_R_INVALIDPUBLICKEY, 244 DST_R_INVALIDPRIVATEKEY, 245 DST_R_WRITEERROR, 246 DST_R_INVALIDPARAM, 247 DST_R_SIGNFAILURE, 248 DST_R_VERIFYFAILURE, 249 DST_R_NOTPUBLICKEY, 250 DST_R_NOTPRIVATEKEY, 251 DST_R_KEYCANNOTCOMPUTESECRET, 252 DST_R_COMPUTESECRETFAILURE, 253 DST_R_NORANDOMNESS, 254 DST_R_BADKEYTYPE, 255 DST_R_NOENGINE, 256 DST_R_EXTERNALKEY, 257 258 DNS_R_NOERROR, 259 DNS_R_FORMERR, 260 DNS_R_SERVFAIL, 261 DNS_R_NXDOMAIN, 262 DNS_R_NOTIMP, 263 DNS_R_REFUSED, 264 DNS_R_YXDOMAIN, 265 DNS_R_YXRRSET, 266 DNS_R_NXRRSET, 267 DNS_R_NOTAUTH, 268 DNS_R_NOTZONE, 269 DNS_R_RCODE11, 270 DNS_R_RCODE12, 271 DNS_R_RCODE13, 272 DNS_R_RCODE14, 273 DNS_R_RCODE15, 274 DNS_R_BADVERS, 275 DNS_R_BADCOOKIE = DNS_R_NOERROR + 23, 276 277 ISCCC_R_UNKNOWNVERSION, 278 ISCCC_R_SYNTAX, 279 ISCCC_R_BADAUTH, 280 ISCCC_R_EXPIRED, 281 ISCCC_R_CLOCKSKEW, 282 ISCCC_R_DUPLICATE, 283 ISCCC_R_MAXDEPTH, 284 285 ISC_R_NRESULTS, /*% The number of results. */ 286 ISC_R_MAKE_ENUM_32BIT = INT32_MAX, 287 } isc_result_t; 288 289 ISC_LANG_BEGINDECLS 290 291 const char *isc_result_totext(isc_result_t); 292 /*%< 293 * Convert an isc_result_t into a string message describing the result. 294 */ 295 296 const char *isc_result_toid(isc_result_t); 297 /*%< 298 * Convert an isc_result_t into a string identifier such as 299 * "ISC_R_SUCCESS". 300 */ 301 302 ISC_LANG_ENDDECLS 303