Annotation of embedaddon/dhcp/omapip/toisc.c, revision 1.1.1.1
1.1 misho 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>