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