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