]>
Commit | Line | Data |
---|---|---|
69150c8a | 1 | /* toisc.c |
5f4cd0e9 | 2 | |
69150c8a | 3 | Convert non-ISC result codes to ISC result codes. */ |
5f4cd0e9 TL |
4 | |
5 | /* | |
7512d88b | 6 | * Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC") |
98311e4b | 7 | * Copyright (c) 2001-2003 by Internet Software Consortium |
5f4cd0e9 | 8 | * |
7512d88b TM |
9 | * This Source Code Form is subject to the terms of the Mozilla Public |
10 | * License, v. 2.0. If a copy of the MPL was not distributed with this | |
11 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. | |
5f4cd0e9 | 12 | * |
98311e4b DH |
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. | |
5f4cd0e9 | 20 | * |
98311e4b DH |
21 | * Internet Systems Consortium, Inc. |
22 | * 950 Charter Street | |
23 | * Redwood City, CA 94063 | |
24 | * <info@isc.org> | |
2c85ac9b | 25 | * https://www.isc.org/ |
5f4cd0e9 | 26 | * |
5f4cd0e9 TL |
27 | */ |
28 | ||
fe5b0fdd DH |
29 | #include "dhcpd.h" |
30 | ||
5f4cd0e9 TL |
31 | #include <omapip/omapip_p.h> |
32 | #include "arpa/nameser.h" | |
30afd7db | 33 | #include "ns_name.h" |
5f4cd0e9 | 34 | |
fe5b0fdd DH |
35 | #include <errno.h> |
36 | ||
5f4cd0e9 TL |
37 | isc_result_t uerr2isc (int err) |
38 | { | |
39 | switch (err) { | |
40 | case EPERM: | |
41 | return ISC_R_NOPERM; | |
42 | ||
43 | case ENOENT: | |
44 | return ISC_R_NOTFOUND; | |
45 | ||
46 | case ESRCH: | |
47 | return ISC_R_NOTFOUND; | |
48 | ||
49 | case EIO: | |
50 | return ISC_R_IOERROR; | |
51 | ||
52 | case ENXIO: | |
53 | return ISC_R_NOTFOUND; | |
54 | ||
55 | case E2BIG: | |
56 | return ISC_R_NOSPACE; | |
57 | ||
58 | case ENOEXEC: | |
98bf1607 | 59 | return DHCP_R_FORMERR; |
5f4cd0e9 TL |
60 | |
61 | case ECHILD: | |
62 | return ISC_R_NOTFOUND; | |
63 | ||
64 | case ENOMEM: | |
65 | return ISC_R_NOMEMORY; | |
66 | ||
67 | case EACCES: | |
68 | return ISC_R_NOPERM; | |
69 | ||
70 | case EFAULT: | |
98bf1607 | 71 | return DHCP_R_INVALIDARG; |
5f4cd0e9 TL |
72 | |
73 | case EEXIST: | |
74 | return ISC_R_EXISTS; | |
75 | ||
76 | case EINVAL: | |
98bf1607 | 77 | return DHCP_R_INVALIDARG; |
5f4cd0e9 TL |
78 | |
79 | case ENOTTY: | |
98bf1607 | 80 | return DHCP_R_INVALIDARG; |
5f4cd0e9 TL |
81 | |
82 | case EFBIG: | |
83 | return ISC_R_NOSPACE; | |
84 | ||
85 | case ENOSPC: | |
86 | return ISC_R_NOSPACE; | |
87 | ||
88 | case EROFS: | |
89 | return ISC_R_NOPERM; | |
90 | ||
91 | case EMLINK: | |
92 | return ISC_R_NOSPACE; | |
93 | ||
94 | case EPIPE: | |
95 | return ISC_R_NOTCONNECTED; | |
96 | ||
97 | case EINPROGRESS: | |
98 | return ISC_R_ALREADYRUNNING; | |
99 | ||
100 | case EALREADY: | |
101 | return ISC_R_ALREADYRUNNING; | |
102 | ||
103 | case ENOTSOCK: | |
104 | return ISC_R_INVALIDFILE; | |
105 | ||
106 | case EDESTADDRREQ: | |
98bf1607 | 107 | return DHCP_R_DESTADDRREQ; |
5f4cd0e9 TL |
108 | |
109 | case EMSGSIZE: | |
110 | return ISC_R_NOSPACE; | |
111 | ||
112 | case EPROTOTYPE: | |
98bf1607 | 113 | return DHCP_R_INVALIDARG; |
5f4cd0e9 TL |
114 | |
115 | case ENOPROTOOPT: | |
116 | return ISC_R_NOTIMPLEMENTED; | |
117 | ||
118 | case EPROTONOSUPPORT: | |
119 | return ISC_R_NOTIMPLEMENTED; | |
120 | ||
121 | case ESOCKTNOSUPPORT: | |
122 | return ISC_R_NOTIMPLEMENTED; | |
123 | ||
124 | case EOPNOTSUPP: | |
125 | return ISC_R_NOTIMPLEMENTED; | |
126 | ||
127 | case EPFNOSUPPORT: | |
128 | return ISC_R_NOTIMPLEMENTED; | |
129 | ||
130 | case EAFNOSUPPORT: | |
131 | return ISC_R_NOTIMPLEMENTED; | |
132 | ||
133 | case EADDRINUSE: | |
134 | return ISC_R_ADDRINUSE; | |
135 | ||
136 | case EADDRNOTAVAIL: | |
137 | return ISC_R_ADDRNOTAVAIL; | |
138 | ||
139 | case ENETDOWN: | |
140 | return ISC_R_NETDOWN; | |
141 | ||
142 | case ENETUNREACH: | |
143 | return ISC_R_NETUNREACH; | |
144 | ||
145 | case ECONNABORTED: | |
146 | return ISC_R_TIMEDOUT; | |
147 | ||
148 | case ECONNRESET: | |
98bf1607 | 149 | return DHCP_R_CONNRESET; |
5f4cd0e9 TL |
150 | |
151 | case ENOBUFS: | |
152 | return ISC_R_NOSPACE; | |
153 | ||
154 | case EISCONN: | |
155 | return ISC_R_ALREADYRUNNING; | |
156 | ||
157 | case ENOTCONN: | |
158 | return ISC_R_NOTCONNECTED; | |
159 | ||
160 | case ESHUTDOWN: | |
161 | return ISC_R_SHUTTINGDOWN; | |
162 | ||
163 | case ETIMEDOUT: | |
164 | return ISC_R_TIMEDOUT; | |
165 | ||
166 | case ECONNREFUSED: | |
167 | return ISC_R_CONNREFUSED; | |
168 | ||
169 | case EHOSTDOWN: | |
170 | return ISC_R_HOSTDOWN; | |
171 | ||
172 | case EHOSTUNREACH: | |
173 | return ISC_R_HOSTUNREACH; | |
174 | ||
1bd18042 | 175 | #ifdef EDQUOT |
5f4cd0e9 TL |
176 | case EDQUOT: |
177 | return ISC_R_QUOTA; | |
1bd18042 | 178 | #endif |
5f4cd0e9 | 179 | |
6cff8371 | 180 | #ifdef EBADRPC |
5f4cd0e9 TL |
181 | case EBADRPC: |
182 | return ISC_R_NOTIMPLEMENTED; | |
6cff8371 | 183 | #endif |
5f4cd0e9 | 184 | |
6cff8371 | 185 | #ifdef ERPCMISMATCH |
5f4cd0e9 | 186 | case ERPCMISMATCH: |
98bf1607 | 187 | return DHCP_R_VERSIONMISMATCH; |
6cff8371 | 188 | #endif |
5f4cd0e9 | 189 | |
6cff8371 | 190 | #ifdef EPROGMISMATCH |
5f4cd0e9 | 191 | case EPROGMISMATCH: |
98bf1607 | 192 | return DHCP_R_VERSIONMISMATCH; |
6cff8371 | 193 | #endif |
5f4cd0e9 | 194 | |
6cff8371 | 195 | #ifdef EAUTH |
5f4cd0e9 | 196 | case EAUTH: |
98bf1607 | 197 | return DHCP_R_NOTAUTH; |
6cff8371 | 198 | #endif |
5f4cd0e9 | 199 | |
6cff8371 | 200 | #ifdef ENEEDAUTH |
5f4cd0e9 | 201 | case ENEEDAUTH: |
98bf1607 | 202 | return DHCP_R_NOTAUTH; |
6cff8371 | 203 | #endif |
5f4cd0e9 | 204 | |
6cff8371 | 205 | #ifdef EOVERFLOW |
5f4cd0e9 TL |
206 | case EOVERFLOW: |
207 | return ISC_R_NOSPACE; | |
6cff8371 | 208 | #endif |
5f4cd0e9 TL |
209 | } |
210 | return ISC_R_UNEXPECTED; | |
211 | } |