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