omapip/toisc.c

Go to the documentation of this file.
00001 /* toisc.c
00002 
00003    Convert non-ISC result codes to ISC result codes. */
00004 
00005 /*
00006  * Copyright (c) 2004,2007,2009,2014 by Internet Systems Consortium, Inc. ("ISC")
00007  * Copyright (c) 2001-2003 by Internet Software Consortium
00008  *
00009  * Permission to use, copy, modify, and distribute this software for any
00010  * purpose with or without fee is hereby granted, provided that the above
00011  * copyright notice and this permission notice appear in all copies.
00012  *
00013  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
00014  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
00015  * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
00016  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
00017  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00018  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
00019  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
00020  *
00021  *   Internet Systems Consortium, Inc.
00022  *   950 Charter Street
00023  *   Redwood City, CA 94063
00024  *   <info@isc.org>
00025  *   https://www.isc.org/
00026  *
00027  */
00028 
00029 #include "dhcpd.h"
00030 
00031 #include <omapip/omapip_p.h>
00032 #include "arpa/nameser.h"
00033 #include "minires.h"
00034 
00035 #include <errno.h>
00036 
00037 isc_result_t uerr2isc (int err)
00038 {
00039         switch (err) {
00040               case EPERM:
00041                 return ISC_R_NOPERM;
00042 
00043               case ENOENT:
00044                 return ISC_R_NOTFOUND;
00045 
00046               case ESRCH:
00047                 return ISC_R_NOTFOUND;
00048 
00049               case EIO:
00050                 return ISC_R_IOERROR;
00051 
00052               case ENXIO:
00053                 return ISC_R_NOTFOUND;
00054 
00055               case E2BIG:
00056                 return ISC_R_NOSPACE;
00057 
00058               case ENOEXEC:
00059                 return DHCP_R_FORMERR;
00060 
00061               case ECHILD:
00062                 return ISC_R_NOTFOUND;
00063 
00064               case ENOMEM:
00065                 return ISC_R_NOMEMORY;
00066 
00067               case EACCES:
00068                 return ISC_R_NOPERM;
00069 
00070               case EFAULT:
00071                 return DHCP_R_INVALIDARG;
00072 
00073               case EEXIST:
00074                 return ISC_R_EXISTS;
00075 
00076               case EINVAL:
00077                 return DHCP_R_INVALIDARG;
00078 
00079               case ENOTTY:
00080                 return DHCP_R_INVALIDARG;
00081 
00082               case EFBIG:
00083                 return ISC_R_NOSPACE;
00084 
00085               case ENOSPC:
00086                 return ISC_R_NOSPACE;
00087 
00088               case EROFS:
00089                 return ISC_R_NOPERM;
00090 
00091               case EMLINK:
00092                 return ISC_R_NOSPACE;
00093 
00094               case EPIPE:
00095                 return ISC_R_NOTCONNECTED;
00096 
00097               case EINPROGRESS:
00098                 return ISC_R_ALREADYRUNNING;
00099 
00100               case EALREADY:
00101                 return ISC_R_ALREADYRUNNING;
00102 
00103               case ENOTSOCK:
00104                 return ISC_R_INVALIDFILE;
00105 
00106               case EDESTADDRREQ:
00107                 return DHCP_R_DESTADDRREQ;
00108 
00109               case EMSGSIZE:
00110                 return ISC_R_NOSPACE;
00111 
00112               case EPROTOTYPE:
00113                 return DHCP_R_INVALIDARG;
00114 
00115               case ENOPROTOOPT:
00116                 return ISC_R_NOTIMPLEMENTED;
00117 
00118               case EPROTONOSUPPORT:
00119                 return ISC_R_NOTIMPLEMENTED;
00120 
00121               case ESOCKTNOSUPPORT:
00122                 return ISC_R_NOTIMPLEMENTED;
00123 
00124               case EOPNOTSUPP:
00125                 return ISC_R_NOTIMPLEMENTED;
00126 
00127               case EPFNOSUPPORT:
00128                 return ISC_R_NOTIMPLEMENTED;
00129 
00130               case EAFNOSUPPORT:
00131                 return ISC_R_NOTIMPLEMENTED;
00132 
00133               case EADDRINUSE:
00134                 return ISC_R_ADDRINUSE;
00135 
00136               case EADDRNOTAVAIL:
00137                 return ISC_R_ADDRNOTAVAIL;
00138 
00139               case ENETDOWN:
00140                 return ISC_R_NETDOWN;
00141 
00142               case ENETUNREACH:
00143                 return ISC_R_NETUNREACH;
00144 
00145               case ECONNABORTED:
00146                 return ISC_R_TIMEDOUT;
00147 
00148               case ECONNRESET:
00149                 return DHCP_R_CONNRESET;
00150 
00151               case ENOBUFS:
00152                 return ISC_R_NOSPACE;
00153 
00154               case EISCONN:
00155                 return ISC_R_ALREADYRUNNING;
00156 
00157               case ENOTCONN:
00158                 return ISC_R_NOTCONNECTED;
00159 
00160               case ESHUTDOWN:
00161                 return ISC_R_SHUTTINGDOWN;
00162 
00163               case ETIMEDOUT:
00164                 return ISC_R_TIMEDOUT;
00165 
00166               case ECONNREFUSED:
00167                 return ISC_R_CONNREFUSED;
00168 
00169               case EHOSTDOWN:
00170                 return ISC_R_HOSTDOWN;
00171 
00172               case EHOSTUNREACH:
00173                 return ISC_R_HOSTUNREACH;
00174 
00175 #ifdef EDQUOT
00176               case EDQUOT:
00177                 return ISC_R_QUOTA;
00178 #endif
00179 
00180 #ifdef EBADRPC
00181               case EBADRPC:
00182                 return ISC_R_NOTIMPLEMENTED;
00183 #endif
00184 
00185 #ifdef ERPCMISMATCH
00186               case ERPCMISMATCH:
00187                 return DHCP_R_VERSIONMISMATCH;
00188 #endif
00189 
00190 #ifdef EPROGMISMATCH
00191               case EPROGMISMATCH:
00192                 return DHCP_R_VERSIONMISMATCH;
00193 #endif
00194 
00195 #ifdef EAUTH
00196               case EAUTH:
00197                 return DHCP_R_NOTAUTH;
00198 #endif
00199 
00200 #ifdef ENEEDAUTH
00201               case ENEEDAUTH:
00202                 return DHCP_R_NOTAUTH;
00203 #endif
00204 
00205 #ifdef EOVERFLOW
00206               case EOVERFLOW:
00207                 return ISC_R_NOSPACE;
00208 #endif
00209         }
00210         return ISC_R_UNEXPECTED;
00211 }

Generated on 5 Apr 2014 for ISC DHCP by  doxygen 1.6.1