File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / dhcp / omapip / toisc.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Oct 9 09:06:54 2012 UTC (11 years, 8 months ago) by misho
Branches: dhcp, MAIN
CVS tags: v4_1_R7p0, v4_1_R7, v4_1_R4, HEAD
dhcp 4.1 r7

    1: /* toisc.c
    2: 
    3:    Convert non-ISC result codes to ISC result codes. */
    4: 
    5: /*
    6:  * Copyright (c) 2004,2007,2009 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:  *   https://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:  * ``https://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 "dhcpd.h"
   36: 
   37: #include <omapip/omapip_p.h>
   38: #include "arpa/nameser.h"
   39: #include "minires/minires.h"
   40: 
   41: #include <errno.h>
   42: 
   43: isc_result_t ns_rcode_to_isc (int nsr)
   44: {
   45: 	switch (nsr) {
   46: 	      case ns_r_noerror:
   47: 		return ISC_R_SUCCESS;
   48: 
   49: 	      case ns_r_formerr:
   50: 		return ISC_R_FORMERR;
   51: 
   52: 	      case ns_r_servfail:
   53: 		return ISC_R_SERVFAIL;
   54: 
   55: 	      case ns_r_nxdomain:
   56: 		return ISC_R_NXDOMAIN;
   57: 
   58: 	      case ns_r_notimpl:
   59: 		return ISC_R_NOTIMPL;
   60: 
   61: 	      case ns_r_refused:
   62: 		return ISC_R_REFUSED;
   63: 
   64: 	      case ns_r_yxdomain:
   65: 		return ISC_R_YXDOMAIN;
   66: 
   67: 	      case ns_r_yxrrset:
   68: 		return ISC_R_YXRRSET;
   69: 
   70: 	      case ns_r_nxrrset:
   71: 		return ISC_R_NXRRSET;
   72: 
   73: 	      case ns_r_notauth:
   74: 		return ISC_R_NOTAUTH;
   75: 
   76: 	      case ns_r_notzone:
   77: 		return ISC_R_NOTZONE;
   78: 
   79: 	      case ns_r_badsig:
   80: 		return ISC_R_BADSIG;
   81: 
   82: 	      case ns_r_badkey:
   83: 		return ISC_R_BADKEY;
   84: 
   85: 	      case ns_r_badtime:
   86: 		return ISC_R_BADTIME;
   87: 
   88: 	      default:
   89: 		;
   90: 	}
   91: 	return ISC_R_UNEXPECTED;
   92: }
   93: 
   94: isc_result_t uerr2isc (int err)
   95: {
   96: 	switch (err) {
   97: 	      case EPERM:
   98: 		return ISC_R_NOPERM;
   99: 
  100: 	      case ENOENT:
  101: 		return ISC_R_NOTFOUND;
  102: 
  103: 	      case ESRCH:
  104: 		return ISC_R_NOTFOUND;
  105: 
  106: 	      case EIO:
  107: 		return ISC_R_IOERROR;
  108: 
  109: 	      case ENXIO:
  110: 		return ISC_R_NOTFOUND;
  111: 
  112: 	      case E2BIG:
  113: 		return ISC_R_NOSPACE;
  114: 
  115: 	      case ENOEXEC:
  116: 		return ISC_R_FORMERR;
  117: 
  118: 	      case ECHILD:
  119: 		return ISC_R_NOTFOUND;
  120: 
  121: 	      case ENOMEM:
  122: 		return ISC_R_NOMEMORY;
  123: 
  124: 	      case EACCES:
  125: 		return ISC_R_NOPERM;
  126: 
  127: 	      case EFAULT:
  128: 		return ISC_R_INVALIDARG;
  129: 
  130: 	      case EEXIST:
  131: 		return ISC_R_EXISTS;
  132: 
  133: 	      case EINVAL:
  134: 		return ISC_R_INVALIDARG;
  135: 
  136: 	      case ENOTTY:
  137: 		return ISC_R_INVALIDARG;
  138: 
  139: 	      case EFBIG:
  140: 		return ISC_R_NOSPACE;
  141: 
  142: 	      case ENOSPC:
  143: 		return ISC_R_NOSPACE;
  144: 
  145: 	      case EROFS:
  146: 		return ISC_R_NOPERM;
  147: 
  148: 	      case EMLINK:
  149: 		return ISC_R_NOSPACE;
  150: 
  151: 	      case EPIPE:
  152: 		return ISC_R_NOTCONNECTED;
  153: 
  154: 	      case EINPROGRESS:
  155: 		return ISC_R_ALREADYRUNNING;
  156: 
  157: 	      case EALREADY:
  158: 		return ISC_R_ALREADYRUNNING;
  159: 
  160: 	      case ENOTSOCK:
  161: 		return ISC_R_INVALIDFILE;
  162: 
  163: 	      case EDESTADDRREQ:
  164: 		return ISC_R_DESTADDRREQ;
  165: 
  166: 	      case EMSGSIZE:
  167: 		return ISC_R_NOSPACE;
  168: 
  169: 	      case EPROTOTYPE:
  170: 		return ISC_R_INVALIDARG;
  171: 
  172: 	      case ENOPROTOOPT:
  173: 		return ISC_R_NOTIMPLEMENTED;
  174: 
  175: 	      case EPROTONOSUPPORT:
  176: 		return ISC_R_NOTIMPLEMENTED;
  177: 
  178: 	      case ESOCKTNOSUPPORT:
  179: 		return ISC_R_NOTIMPLEMENTED;
  180: 
  181: 	      case EOPNOTSUPP:
  182: 		return ISC_R_NOTIMPLEMENTED;
  183: 
  184: 	      case EPFNOSUPPORT:
  185: 		return ISC_R_NOTIMPLEMENTED;
  186: 
  187: 	      case EAFNOSUPPORT:
  188: 		return ISC_R_NOTIMPLEMENTED;
  189: 
  190: 	      case EADDRINUSE:
  191: 		return ISC_R_ADDRINUSE;
  192: 
  193: 	      case EADDRNOTAVAIL:
  194: 		return ISC_R_ADDRNOTAVAIL;
  195: 
  196: 	      case ENETDOWN:
  197: 		return ISC_R_NETDOWN;
  198: 
  199: 	      case ENETUNREACH:
  200: 		return ISC_R_NETUNREACH;
  201: 
  202: 	      case ECONNABORTED:
  203: 		return ISC_R_TIMEDOUT;
  204: 
  205: 	      case ECONNRESET:
  206: 		return ISC_R_CONNRESET;
  207: 
  208: 	      case ENOBUFS:
  209: 		return ISC_R_NOSPACE;
  210: 
  211: 	      case EISCONN:
  212: 		return ISC_R_ALREADYRUNNING;
  213: 
  214: 	      case ENOTCONN:
  215: 		return ISC_R_NOTCONNECTED;
  216: 
  217: 	      case ESHUTDOWN:
  218: 		return ISC_R_SHUTTINGDOWN;
  219: 
  220: 	      case ETIMEDOUT:
  221: 		return ISC_R_TIMEDOUT;
  222: 
  223: 	      case ECONNREFUSED:
  224: 		return ISC_R_CONNREFUSED;
  225: 
  226: 	      case EHOSTDOWN:
  227: 		return ISC_R_HOSTDOWN;
  228: 
  229: 	      case EHOSTUNREACH:
  230: 		return ISC_R_HOSTUNREACH;
  231: 
  232: #ifdef EDQUOT
  233: 	      case EDQUOT:
  234: 		return ISC_R_QUOTA;
  235: #endif
  236: 
  237: #ifdef EBADRPC
  238: 	      case EBADRPC:
  239: 		return ISC_R_NOTIMPLEMENTED;
  240: #endif
  241: 
  242: #ifdef ERPCMISMATCH
  243: 	      case ERPCMISMATCH:
  244: 		return ISC_R_VERSIONMISMATCH;
  245: #endif
  246: 
  247: #ifdef EPROGMISMATCH
  248: 	      case EPROGMISMATCH:
  249: 		return ISC_R_VERSIONMISMATCH;
  250: #endif
  251: 
  252: #ifdef EAUTH
  253: 	      case EAUTH:
  254: 		return ISC_R_NOTAUTH;
  255: #endif
  256: 
  257: #ifdef ENEEDAUTH
  258: 	      case ENEEDAUTH:
  259: 		return ISC_R_NOTAUTH;
  260: #endif
  261: 
  262: #ifdef EOVERFLOW
  263: 	      case EOVERFLOW:
  264: 		return ISC_R_NOSPACE;
  265: #endif
  266: 	}
  267: 	return ISC_R_UNEXPECTED;
  268: }
  269: 
  270: ns_rcode isc_rcode_to_ns (isc_result_t isc)
  271: {
  272: 	switch (isc) {
  273: 	      case ISC_R_SUCCESS:
  274: 		return ns_r_noerror;
  275: 
  276: 	      case ISC_R_FORMERR:
  277: 		return ns_r_formerr;
  278: 
  279: 	      case ISC_R_SERVFAIL:
  280: 		return ns_r_servfail;
  281: 
  282: 	      case ISC_R_NXDOMAIN:
  283: 		return ns_r_nxdomain;
  284: 
  285: 	      case ISC_R_NOTIMPL:
  286: 		return ns_r_notimpl;
  287: 
  288: 	      case ISC_R_REFUSED:
  289: 		return ns_r_refused;
  290: 
  291: 	      case ISC_R_YXDOMAIN:
  292: 		return ns_r_yxdomain;
  293: 
  294: 	      case ISC_R_YXRRSET:
  295: 		return ns_r_yxrrset;
  296: 
  297: 	      case ISC_R_NXRRSET:
  298: 		return ns_r_nxrrset;
  299: 
  300: 	      case ISC_R_NOTAUTH:
  301: 		return ns_r_notauth;
  302: 
  303: 	      case ISC_R_NOTZONE:
  304: 		return ns_r_notzone;
  305: 
  306: 	      case ISC_R_BADSIG:
  307: 		return ns_r_badsig;
  308: 
  309: 	      case ISC_R_BADKEY:
  310: 		return ns_r_badkey;
  311: 
  312: 	      case ISC_R_BADTIME:
  313: 		return ns_r_badtime;
  314: 
  315: 	      default:
  316: 		;
  317: 	}
  318: 	return ns_r_servfail;
  319: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>