1/* toisc.c 2 3 Convert non-ISC result codes to ISC result codes. */ 4 5/* 6 * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") 7 * Copyright (c) 2001-2003 by Internet Software Consortium 8 * 9 * Permission to use, copy, modify, and distribute this software for any 10 * purpose with or without fee is hereby granted, provided that the above 11 * copyright notice and this permission notice appear in all copies. 12 * 13 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES 14 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 15 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR 16 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 17 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 18 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 19 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 20 * 21 * Internet Systems Consortium, Inc. 22 * 950 Charter Street 23 * Redwood City, CA 94063 24 * <info@isc.org> 25 * http://www.isc.org/ 26 * 27 * This software has been written for Internet Systems Consortium 28 * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc. 29 * To learn more about Internet Systems Consortium, see 30 * ``http://www.isc.org/''. To learn more about Vixie Enterprises, 31 * see ``http://www.vix.com''. To learn more about Nominum, Inc., see 32 * ``http://www.nominum.com''. 33 */ 34 35#include <omapip/omapip_p.h> 36#include "arpa/nameser.h" 37#include "minires/minires.h" 38 39isc_result_t ns_rcode_to_isc (int nsr) 40{ 41 switch (nsr) { 42 case ns_r_noerror: 43 return ISC_R_SUCCESS; 44 45 case ns_r_formerr: 46 return ISC_R_FORMERR; 47 48 case ns_r_servfail: 49 return ISC_R_SERVFAIL; 50 51 case ns_r_nxdomain: 52 return ISC_R_NXDOMAIN; 53 54 case ns_r_notimpl: 55 return ISC_R_NOTIMPL; 56 57 case ns_r_refused: 58 return ISC_R_REFUSED; 59 60 case ns_r_yxdomain: 61 return ISC_R_YXDOMAIN; 62 63 case ns_r_yxrrset: 64 return ISC_R_YXRRSET; 65 66 case ns_r_nxrrset: 67 return ISC_R_NXRRSET; 68 69 case ns_r_notauth: 70 return ISC_R_NOTAUTH; 71 72 case ns_r_notzone: 73 return ISC_R_NOTZONE; 74 75 case ns_r_badsig: 76 return ISC_R_BADSIG; 77 78 case ns_r_badkey: 79 return ISC_R_BADKEY; 80 81 case ns_r_badtime: 82 return ISC_R_BADTIME; 83 84 default: 85 ; 86 } 87 return ISC_R_UNEXPECTED; 88} 89 90isc_result_t uerr2isc (int err) 91{ 92 switch (err) { 93 case EPERM: 94 return ISC_R_NOPERM; 95 96 case ENOENT: 97 return ISC_R_NOTFOUND; 98 99 case ESRCH: 100 return ISC_R_NOTFOUND; 101 102 case EIO: 103 return ISC_R_IOERROR; 104 105 case ENXIO: 106 return ISC_R_NOTFOUND; 107 108 case E2BIG: 109 return ISC_R_NOSPACE; 110 111 case ENOEXEC: 112 return ISC_R_FORMERR; 113 114 case ECHILD: 115 return ISC_R_NOTFOUND; 116 117 case ENOMEM: 118 return ISC_R_NOMEMORY; 119 120 case EACCES: 121 return ISC_R_NOPERM; 122 123 case EFAULT: 124 return ISC_R_INVALIDARG; 125 126 case EEXIST: 127 return ISC_R_EXISTS; 128 129 case EINVAL: 130 return ISC_R_INVALIDARG; 131 132 case ENOTTY: 133 return ISC_R_INVALIDARG; 134 135 case EFBIG: 136 return ISC_R_NOSPACE; 137 138 case ENOSPC: 139 return ISC_R_NOSPACE; 140 141 case EROFS: 142 return ISC_R_NOPERM; 143 144 case EMLINK: 145 return ISC_R_NOSPACE; 146 147 case EPIPE: 148 return ISC_R_NOTCONNECTED; 149 150 case EINPROGRESS: 151 return ISC_R_ALREADYRUNNING; 152 153 case EALREADY: 154 return ISC_R_ALREADYRUNNING; 155 156 case ENOTSOCK: 157 return ISC_R_INVALIDFILE; 158 159 case EDESTADDRREQ: 160 return ISC_R_DESTADDRREQ; 161 162 case EMSGSIZE: 163 return ISC_R_NOSPACE; 164 165 case EPROTOTYPE: 166 return ISC_R_INVALIDARG; 167 168 case ENOPROTOOPT: 169 return ISC_R_NOTIMPLEMENTED; 170 171 case EPROTONOSUPPORT: 172 return ISC_R_NOTIMPLEMENTED; 173 174 case ESOCKTNOSUPPORT: 175 return ISC_R_NOTIMPLEMENTED; 176 177 case EOPNOTSUPP: 178 return ISC_R_NOTIMPLEMENTED; 179 180 case EPFNOSUPPORT: 181 return ISC_R_NOTIMPLEMENTED; 182 183 case EAFNOSUPPORT: 184 return ISC_R_NOTIMPLEMENTED; 185 186 case EADDRINUSE: 187 return ISC_R_ADDRINUSE; 188 189 case EADDRNOTAVAIL: 190 return ISC_R_ADDRNOTAVAIL; 191 192 case ENETDOWN: 193 return ISC_R_NETDOWN; 194 195 case ENETUNREACH: 196 return ISC_R_NETUNREACH; 197 198 case ECONNABORTED: 199 return ISC_R_TIMEDOUT; 200 201 case ECONNRESET: 202 return ISC_R_CONNRESET; 203 204 case ENOBUFS: 205 return ISC_R_NOSPACE; 206 207 case EISCONN: 208 return ISC_R_ALREADYRUNNING; 209 210 case ENOTCONN: 211 return ISC_R_NOTCONNECTED; 212 213 case ESHUTDOWN: 214 return ISC_R_SHUTTINGDOWN; 215 216 case ETIMEDOUT: 217 return ISC_R_TIMEDOUT; 218 219 case ECONNREFUSED: 220 return ISC_R_CONNREFUSED; 221 222 case EHOSTDOWN: 223 return ISC_R_HOSTDOWN; 224 225 case EHOSTUNREACH: 226 return ISC_R_HOSTUNREACH; 227 228#ifdef EDQUOT 229 case EDQUOT: 230 return ISC_R_QUOTA; 231#endif 232 233#ifdef EBADRPC 234 case EBADRPC: 235 return ISC_R_NOTIMPLEMENTED; 236#endif 237 238#ifdef ERPCMISMATCH 239 case ERPCMISMATCH: 240 return ISC_R_VERSIONMISMATCH; 241#endif 242 243#ifdef EPROGMISMATCH 244 case EPROGMISMATCH: 245 return ISC_R_VERSIONMISMATCH; 246#endif 247 248#ifdef EAUTH 249 case EAUTH: 250 return ISC_R_NOTAUTH; 251#endif 252 253#ifdef ENEEDAUTH 254 case ENEEDAUTH: 255 return ISC_R_NOTAUTH; 256#endif 257 258#ifdef EOVERFLOW 259 case EOVERFLOW: 260 return ISC_R_NOSPACE; 261#endif 262 } 263 return ISC_R_UNEXPECTED; 264} 265 266ns_rcode isc_rcode_to_ns (isc_result_t isc) 267{ 268 switch (isc) { 269 case ISC_R_SUCCESS: 270 return ns_r_noerror; 271 272 case ISC_R_FORMERR: 273 return ns_r_formerr; 274 275 case ISC_R_SERVFAIL: 276 return ns_r_servfail; 277 278 case ISC_R_NXDOMAIN: 279 return ns_r_nxdomain; 280 281 case ISC_R_NOTIMPL: 282 return ns_r_notimpl; 283 284 case ISC_R_REFUSED: 285 return ns_r_refused; 286 287 case ISC_R_YXDOMAIN: 288 return ns_r_yxdomain; 289 290 case ISC_R_YXRRSET: 291 return ns_r_yxrrset; 292 293 case ISC_R_NXRRSET: 294 return ns_r_nxrrset; 295 296 case ISC_R_NOTAUTH: 297 return ns_r_notauth; 298 299 case ISC_R_NOTZONE: 300 return ns_r_notzone; 301 302 case ISC_R_BADSIG: 303 return ns_r_badsig; 304 305 case ISC_R_BADKEY: 306 return ns_r_badkey; 307 308 case ISC_R_BADTIME: 309 return ns_r_badtime; 310 311 default: 312 ; 313 } 314 return ns_r_servfail; 315} 316