]> git.ipfire.org Git - thirdparty/dhcp.git/blame - omapip/toisc.c
[master] Add patch to limit the value of an fd we accept for a connection.
[thirdparty/dhcp.git] / omapip / toisc.c
CommitLineData
69150c8a 1/* toisc.c
5f4cd0e9 2
69150c8a 3 Convert non-ISC result codes to ISC result codes. */
5f4cd0e9
TL
4
5/*
edad9be5 6 * Copyright (c) 2004,2007,2009,2014 by Internet Systems Consortium, Inc. ("ISC")
98311e4b 7 * Copyright (c) 2001-2003 by Internet Software Consortium
5f4cd0e9 8 *
98311e4b
DH
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.
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"
98bf1607 33#include "minires.h"
5f4cd0e9 34
fe5b0fdd
DH
35#include <errno.h>
36
5f4cd0e9
TL
37isc_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}