ISC DHCP  4.3.3
A reference DHCPv4 and DHCPv6 implementation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
toisc.c
Go to the documentation of this file.
1 /* toisc.c
2 
3  Convert non-ISC result codes to ISC result codes. */
4 
5 /*
6  * Copyright (c) 2004,2007,2009,2014 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  */
28 
29 #include "dhcpd.h"
30 
31 #include <omapip/omapip_p.h>
32 #include "arpa/nameser.h"
33 #include "minires.h"
34 
35 #include <errno.h>
36 
37 isc_result_t uerr2isc (int err)
38 {
39  switch (err) {
40  case EPERM:
41  return ISC_R_NOPERM;
42 
43  case ENOENT:
44  return ISC_R_NOTFOUND;
45 
46  case ESRCH:
47  return ISC_R_NOTFOUND;
48 
49  case EIO:
50  return ISC_R_IOERROR;
51 
52  case ENXIO:
53  return ISC_R_NOTFOUND;
54 
55  case E2BIG:
56  return ISC_R_NOSPACE;
57 
58  case ENOEXEC:
59  return DHCP_R_FORMERR;
60 
61  case ECHILD:
62  return ISC_R_NOTFOUND;
63 
64  case ENOMEM:
65  return ISC_R_NOMEMORY;
66 
67  case EACCES:
68  return ISC_R_NOPERM;
69 
70  case EFAULT:
71  return DHCP_R_INVALIDARG;
72 
73  case EEXIST:
74  return ISC_R_EXISTS;
75 
76  case EINVAL:
77  return DHCP_R_INVALIDARG;
78 
79  case ENOTTY:
80  return DHCP_R_INVALIDARG;
81 
82  case EFBIG:
83  return ISC_R_NOSPACE;
84 
85  case ENOSPC:
86  return ISC_R_NOSPACE;
87 
88  case EROFS:
89  return ISC_R_NOPERM;
90 
91  case EMLINK:
92  return ISC_R_NOSPACE;
93 
94  case EPIPE:
95  return ISC_R_NOTCONNECTED;
96 
97  case EINPROGRESS:
98  return ISC_R_ALREADYRUNNING;
99 
100  case EALREADY:
101  return ISC_R_ALREADYRUNNING;
102 
103  case ENOTSOCK:
104  return ISC_R_INVALIDFILE;
105 
106  case EDESTADDRREQ:
107  return DHCP_R_DESTADDRREQ;
108 
109  case EMSGSIZE:
110  return ISC_R_NOSPACE;
111 
112  case EPROTOTYPE:
113  return DHCP_R_INVALIDARG;
114 
115  case ENOPROTOOPT:
116  return ISC_R_NOTIMPLEMENTED;
117 
118  case EPROTONOSUPPORT:
119  return ISC_R_NOTIMPLEMENTED;
120 
121  case ESOCKTNOSUPPORT:
122  return ISC_R_NOTIMPLEMENTED;
123 
124  case EOPNOTSUPP:
125  return ISC_R_NOTIMPLEMENTED;
126 
127  case EPFNOSUPPORT:
128  return ISC_R_NOTIMPLEMENTED;
129 
130  case EAFNOSUPPORT:
131  return ISC_R_NOTIMPLEMENTED;
132 
133  case EADDRINUSE:
134  return ISC_R_ADDRINUSE;
135 
136  case EADDRNOTAVAIL:
137  return ISC_R_ADDRNOTAVAIL;
138 
139  case ENETDOWN:
140  return ISC_R_NETDOWN;
141 
142  case ENETUNREACH:
143  return ISC_R_NETUNREACH;
144 
145  case ECONNABORTED:
146  return ISC_R_TIMEDOUT;
147 
148  case ECONNRESET:
149  return DHCP_R_CONNRESET;
150 
151  case ENOBUFS:
152  return ISC_R_NOSPACE;
153 
154  case EISCONN:
155  return ISC_R_ALREADYRUNNING;
156 
157  case ENOTCONN:
158  return ISC_R_NOTCONNECTED;
159 
160  case ESHUTDOWN:
161  return ISC_R_SHUTTINGDOWN;
162 
163  case ETIMEDOUT:
164  return ISC_R_TIMEDOUT;
165 
166  case ECONNREFUSED:
167  return ISC_R_CONNREFUSED;
168 
169  case EHOSTDOWN:
170  return ISC_R_HOSTDOWN;
171 
172  case EHOSTUNREACH:
173  return ISC_R_HOSTUNREACH;
174 
175 #ifdef EDQUOT
176  case EDQUOT:
177  return ISC_R_QUOTA;
178 #endif
179 
180 #ifdef EBADRPC
181  case EBADRPC:
182  return ISC_R_NOTIMPLEMENTED;
183 #endif
184 
185 #ifdef ERPCMISMATCH
186  case ERPCMISMATCH:
187  return DHCP_R_VERSIONMISMATCH;
188 #endif
189 
190 #ifdef EPROGMISMATCH
191  case EPROGMISMATCH:
192  return DHCP_R_VERSIONMISMATCH;
193 #endif
194 
195 #ifdef EAUTH
196  case EAUTH:
197  return DHCP_R_NOTAUTH;
198 #endif
199 
200 #ifdef ENEEDAUTH
201  case ENEEDAUTH:
202  return DHCP_R_NOTAUTH;
203 #endif
204 
205 #ifdef EOVERFLOW
206  case EOVERFLOW:
207  return ISC_R_NOSPACE;
208 #endif
209  }
210  return ISC_R_UNEXPECTED;
211 }
#define DHCP_R_INVALIDARG
Definition: result.h:48
#define DHCP_R_FORMERR
Definition: result.h:58
isc_result_t uerr2isc(int err)
Definition: toisc.c:37
#define DHCP_R_VERSIONMISMATCH
Definition: result.h:46
#define DHCP_R_DESTADDRREQ
Definition: result.h:72
#define DHCP_R_NOTAUTH
Definition: result.h:66
#define DHCP_R_CONNRESET
Definition: result.h:76