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