00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
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 }