xref: /minix/external/bsd/dhcp/dist/omapip/toisc.c (revision 83ee113e)
1*83ee113eSDavid van Moolenbroek /*	$NetBSD: toisc.c,v 1.1.1.2 2014/07/12 11:58:00 spz Exp $	*/
2*83ee113eSDavid van Moolenbroek /* toisc.c
3*83ee113eSDavid van Moolenbroek 
4*83ee113eSDavid van Moolenbroek    Convert non-ISC result codes to ISC result codes. */
5*83ee113eSDavid van Moolenbroek 
6*83ee113eSDavid van Moolenbroek /*
7*83ee113eSDavid van Moolenbroek  * Copyright (c) 2004,2007,2009,2014 by Internet Systems Consortium, Inc. ("ISC")
8*83ee113eSDavid van Moolenbroek  * Copyright (c) 2001-2003 by Internet Software Consortium
9*83ee113eSDavid van Moolenbroek  *
10*83ee113eSDavid van Moolenbroek  * Permission to use, copy, modify, and distribute this software for any
11*83ee113eSDavid van Moolenbroek  * purpose with or without fee is hereby granted, provided that the above
12*83ee113eSDavid van Moolenbroek  * copyright notice and this permission notice appear in all copies.
13*83ee113eSDavid van Moolenbroek  *
14*83ee113eSDavid van Moolenbroek  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
15*83ee113eSDavid van Moolenbroek  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
16*83ee113eSDavid van Moolenbroek  * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
17*83ee113eSDavid van Moolenbroek  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18*83ee113eSDavid van Moolenbroek  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
19*83ee113eSDavid van Moolenbroek  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
20*83ee113eSDavid van Moolenbroek  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21*83ee113eSDavid van Moolenbroek  *
22*83ee113eSDavid van Moolenbroek  *   Internet Systems Consortium, Inc.
23*83ee113eSDavid van Moolenbroek  *   950 Charter Street
24*83ee113eSDavid van Moolenbroek  *   Redwood City, CA 94063
25*83ee113eSDavid van Moolenbroek  *   <info@isc.org>
26*83ee113eSDavid van Moolenbroek  *   https://www.isc.org/
27*83ee113eSDavid van Moolenbroek  *
28*83ee113eSDavid van Moolenbroek  */
29*83ee113eSDavid van Moolenbroek 
30*83ee113eSDavid van Moolenbroek #include <sys/cdefs.h>
31*83ee113eSDavid van Moolenbroek __RCSID("$NetBSD: toisc.c,v 1.1.1.2 2014/07/12 11:58:00 spz Exp $");
32*83ee113eSDavid van Moolenbroek 
33*83ee113eSDavid van Moolenbroek #include "dhcpd.h"
34*83ee113eSDavid van Moolenbroek 
35*83ee113eSDavid van Moolenbroek #include <omapip/omapip_p.h>
36*83ee113eSDavid van Moolenbroek #include "arpa/nameser.h"
37*83ee113eSDavid van Moolenbroek #include "minires.h"
38*83ee113eSDavid van Moolenbroek 
39*83ee113eSDavid van Moolenbroek #include <errno.h>
40*83ee113eSDavid van Moolenbroek 
uerr2isc(int err)41*83ee113eSDavid van Moolenbroek isc_result_t uerr2isc (int err)
42*83ee113eSDavid van Moolenbroek {
43*83ee113eSDavid van Moolenbroek 	switch (err) {
44*83ee113eSDavid van Moolenbroek 	      case EPERM:
45*83ee113eSDavid van Moolenbroek 		return ISC_R_NOPERM;
46*83ee113eSDavid van Moolenbroek 
47*83ee113eSDavid van Moolenbroek 	      case ENOENT:
48*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTFOUND;
49*83ee113eSDavid van Moolenbroek 
50*83ee113eSDavid van Moolenbroek 	      case ESRCH:
51*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTFOUND;
52*83ee113eSDavid van Moolenbroek 
53*83ee113eSDavid van Moolenbroek 	      case EIO:
54*83ee113eSDavid van Moolenbroek 		return ISC_R_IOERROR;
55*83ee113eSDavid van Moolenbroek 
56*83ee113eSDavid van Moolenbroek 	      case ENXIO:
57*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTFOUND;
58*83ee113eSDavid van Moolenbroek 
59*83ee113eSDavid van Moolenbroek 	      case E2BIG:
60*83ee113eSDavid van Moolenbroek 		return ISC_R_NOSPACE;
61*83ee113eSDavid van Moolenbroek 
62*83ee113eSDavid van Moolenbroek 	      case ENOEXEC:
63*83ee113eSDavid van Moolenbroek 		return DHCP_R_FORMERR;
64*83ee113eSDavid van Moolenbroek 
65*83ee113eSDavid van Moolenbroek 	      case ECHILD:
66*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTFOUND;
67*83ee113eSDavid van Moolenbroek 
68*83ee113eSDavid van Moolenbroek 	      case ENOMEM:
69*83ee113eSDavid van Moolenbroek 		return ISC_R_NOMEMORY;
70*83ee113eSDavid van Moolenbroek 
71*83ee113eSDavid van Moolenbroek 	      case EACCES:
72*83ee113eSDavid van Moolenbroek 		return ISC_R_NOPERM;
73*83ee113eSDavid van Moolenbroek 
74*83ee113eSDavid van Moolenbroek 	      case EFAULT:
75*83ee113eSDavid van Moolenbroek 		return DHCP_R_INVALIDARG;
76*83ee113eSDavid van Moolenbroek 
77*83ee113eSDavid van Moolenbroek 	      case EEXIST:
78*83ee113eSDavid van Moolenbroek 		return ISC_R_EXISTS;
79*83ee113eSDavid van Moolenbroek 
80*83ee113eSDavid van Moolenbroek 	      case EINVAL:
81*83ee113eSDavid van Moolenbroek 		return DHCP_R_INVALIDARG;
82*83ee113eSDavid van Moolenbroek 
83*83ee113eSDavid van Moolenbroek 	      case ENOTTY:
84*83ee113eSDavid van Moolenbroek 		return DHCP_R_INVALIDARG;
85*83ee113eSDavid van Moolenbroek 
86*83ee113eSDavid van Moolenbroek 	      case EFBIG:
87*83ee113eSDavid van Moolenbroek 		return ISC_R_NOSPACE;
88*83ee113eSDavid van Moolenbroek 
89*83ee113eSDavid van Moolenbroek 	      case ENOSPC:
90*83ee113eSDavid van Moolenbroek 		return ISC_R_NOSPACE;
91*83ee113eSDavid van Moolenbroek 
92*83ee113eSDavid van Moolenbroek 	      case EROFS:
93*83ee113eSDavid van Moolenbroek 		return ISC_R_NOPERM;
94*83ee113eSDavid van Moolenbroek 
95*83ee113eSDavid van Moolenbroek 	      case EMLINK:
96*83ee113eSDavid van Moolenbroek 		return ISC_R_NOSPACE;
97*83ee113eSDavid van Moolenbroek 
98*83ee113eSDavid van Moolenbroek 	      case EPIPE:
99*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTCONNECTED;
100*83ee113eSDavid van Moolenbroek 
101*83ee113eSDavid van Moolenbroek 	      case EINPROGRESS:
102*83ee113eSDavid van Moolenbroek 		return ISC_R_ALREADYRUNNING;
103*83ee113eSDavid van Moolenbroek 
104*83ee113eSDavid van Moolenbroek 	      case EALREADY:
105*83ee113eSDavid van Moolenbroek 		return ISC_R_ALREADYRUNNING;
106*83ee113eSDavid van Moolenbroek 
107*83ee113eSDavid van Moolenbroek 	      case ENOTSOCK:
108*83ee113eSDavid van Moolenbroek 		return ISC_R_INVALIDFILE;
109*83ee113eSDavid van Moolenbroek 
110*83ee113eSDavid van Moolenbroek 	      case EDESTADDRREQ:
111*83ee113eSDavid van Moolenbroek 		return DHCP_R_DESTADDRREQ;
112*83ee113eSDavid van Moolenbroek 
113*83ee113eSDavid van Moolenbroek 	      case EMSGSIZE:
114*83ee113eSDavid van Moolenbroek 		return ISC_R_NOSPACE;
115*83ee113eSDavid van Moolenbroek 
116*83ee113eSDavid van Moolenbroek 	      case EPROTOTYPE:
117*83ee113eSDavid van Moolenbroek 		return DHCP_R_INVALIDARG;
118*83ee113eSDavid van Moolenbroek 
119*83ee113eSDavid van Moolenbroek 	      case ENOPROTOOPT:
120*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTIMPLEMENTED;
121*83ee113eSDavid van Moolenbroek 
122*83ee113eSDavid van Moolenbroek 	      case EPROTONOSUPPORT:
123*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTIMPLEMENTED;
124*83ee113eSDavid van Moolenbroek 
125*83ee113eSDavid van Moolenbroek 	      case ESOCKTNOSUPPORT:
126*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTIMPLEMENTED;
127*83ee113eSDavid van Moolenbroek 
128*83ee113eSDavid van Moolenbroek 	      case EOPNOTSUPP:
129*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTIMPLEMENTED;
130*83ee113eSDavid van Moolenbroek 
131*83ee113eSDavid van Moolenbroek 	      case EPFNOSUPPORT:
132*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTIMPLEMENTED;
133*83ee113eSDavid van Moolenbroek 
134*83ee113eSDavid van Moolenbroek 	      case EAFNOSUPPORT:
135*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTIMPLEMENTED;
136*83ee113eSDavid van Moolenbroek 
137*83ee113eSDavid van Moolenbroek 	      case EADDRINUSE:
138*83ee113eSDavid van Moolenbroek 		return ISC_R_ADDRINUSE;
139*83ee113eSDavid van Moolenbroek 
140*83ee113eSDavid van Moolenbroek 	      case EADDRNOTAVAIL:
141*83ee113eSDavid van Moolenbroek 		return ISC_R_ADDRNOTAVAIL;
142*83ee113eSDavid van Moolenbroek 
143*83ee113eSDavid van Moolenbroek 	      case ENETDOWN:
144*83ee113eSDavid van Moolenbroek 		return ISC_R_NETDOWN;
145*83ee113eSDavid van Moolenbroek 
146*83ee113eSDavid van Moolenbroek 	      case ENETUNREACH:
147*83ee113eSDavid van Moolenbroek 		return ISC_R_NETUNREACH;
148*83ee113eSDavid van Moolenbroek 
149*83ee113eSDavid van Moolenbroek 	      case ECONNABORTED:
150*83ee113eSDavid van Moolenbroek 		return ISC_R_TIMEDOUT;
151*83ee113eSDavid van Moolenbroek 
152*83ee113eSDavid van Moolenbroek 	      case ECONNRESET:
153*83ee113eSDavid van Moolenbroek 		return DHCP_R_CONNRESET;
154*83ee113eSDavid van Moolenbroek 
155*83ee113eSDavid van Moolenbroek 	      case ENOBUFS:
156*83ee113eSDavid van Moolenbroek 		return ISC_R_NOSPACE;
157*83ee113eSDavid van Moolenbroek 
158*83ee113eSDavid van Moolenbroek 	      case EISCONN:
159*83ee113eSDavid van Moolenbroek 		return ISC_R_ALREADYRUNNING;
160*83ee113eSDavid van Moolenbroek 
161*83ee113eSDavid van Moolenbroek 	      case ENOTCONN:
162*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTCONNECTED;
163*83ee113eSDavid van Moolenbroek 
164*83ee113eSDavid van Moolenbroek 	      case ESHUTDOWN:
165*83ee113eSDavid van Moolenbroek 		return ISC_R_SHUTTINGDOWN;
166*83ee113eSDavid van Moolenbroek 
167*83ee113eSDavid van Moolenbroek 	      case ETIMEDOUT:
168*83ee113eSDavid van Moolenbroek 		return ISC_R_TIMEDOUT;
169*83ee113eSDavid van Moolenbroek 
170*83ee113eSDavid van Moolenbroek 	      case ECONNREFUSED:
171*83ee113eSDavid van Moolenbroek 		return ISC_R_CONNREFUSED;
172*83ee113eSDavid van Moolenbroek 
173*83ee113eSDavid van Moolenbroek 	      case EHOSTDOWN:
174*83ee113eSDavid van Moolenbroek 		return ISC_R_HOSTDOWN;
175*83ee113eSDavid van Moolenbroek 
176*83ee113eSDavid van Moolenbroek 	      case EHOSTUNREACH:
177*83ee113eSDavid van Moolenbroek 		return ISC_R_HOSTUNREACH;
178*83ee113eSDavid van Moolenbroek 
179*83ee113eSDavid van Moolenbroek #ifdef EDQUOT
180*83ee113eSDavid van Moolenbroek 	      case EDQUOT:
181*83ee113eSDavid van Moolenbroek 		return ISC_R_QUOTA;
182*83ee113eSDavid van Moolenbroek #endif
183*83ee113eSDavid van Moolenbroek 
184*83ee113eSDavid van Moolenbroek #ifdef EBADRPC
185*83ee113eSDavid van Moolenbroek 	      case EBADRPC:
186*83ee113eSDavid van Moolenbroek 		return ISC_R_NOTIMPLEMENTED;
187*83ee113eSDavid van Moolenbroek #endif
188*83ee113eSDavid van Moolenbroek 
189*83ee113eSDavid van Moolenbroek #ifdef ERPCMISMATCH
190*83ee113eSDavid van Moolenbroek 	      case ERPCMISMATCH:
191*83ee113eSDavid van Moolenbroek 		return DHCP_R_VERSIONMISMATCH;
192*83ee113eSDavid van Moolenbroek #endif
193*83ee113eSDavid van Moolenbroek 
194*83ee113eSDavid van Moolenbroek #ifdef EPROGMISMATCH
195*83ee113eSDavid van Moolenbroek 	      case EPROGMISMATCH:
196*83ee113eSDavid van Moolenbroek 		return DHCP_R_VERSIONMISMATCH;
197*83ee113eSDavid van Moolenbroek #endif
198*83ee113eSDavid van Moolenbroek 
199*83ee113eSDavid van Moolenbroek #ifdef EAUTH
200*83ee113eSDavid van Moolenbroek 	      case EAUTH:
201*83ee113eSDavid van Moolenbroek 		return DHCP_R_NOTAUTH;
202*83ee113eSDavid van Moolenbroek #endif
203*83ee113eSDavid van Moolenbroek 
204*83ee113eSDavid van Moolenbroek #ifdef ENEEDAUTH
205*83ee113eSDavid van Moolenbroek 	      case ENEEDAUTH:
206*83ee113eSDavid van Moolenbroek 		return DHCP_R_NOTAUTH;
207*83ee113eSDavid van Moolenbroek #endif
208*83ee113eSDavid van Moolenbroek 
209*83ee113eSDavid van Moolenbroek #ifdef EOVERFLOW
210*83ee113eSDavid van Moolenbroek 	      case EOVERFLOW:
211*83ee113eSDavid van Moolenbroek 		return ISC_R_NOSPACE;
212*83ee113eSDavid van Moolenbroek #endif
213*83ee113eSDavid van Moolenbroek 	}
214*83ee113eSDavid van Moolenbroek 	return ISC_R_UNEXPECTED;
215*83ee113eSDavid van Moolenbroek }
216