]>
git.ipfire.org Git - thirdparty/dhcp.git/blob - omapip/errwarn.c
3 Errors and warnings... */
6 * Copyright (c) 1995 RadioMail Corporation.
7 * Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC")
8 * Copyright (c) 1996-2003 by Internet Software Consortium
10 * This Source Code Form is subject to the terms of the Mozilla Public
11 * License, v. 2.0. If a copy of the MPL was not distributed with this
12 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
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.
22 * Internet Systems Consortium, Inc.
24 * Redwood City, CA 94063
26 * https://www.isc.org/
28 * This software was written for RadioMail Corporation by Ted Lemon
29 * under a contract with Vixie Enterprises. Further modifications have
30 * been made for Internet Systems Consortium under a contract
31 * with Vixie Laboratories.
36 #include <omapip/omapip_p.h>
45 void (*log_cleanup
) (void);
47 #define CVT_BUF_MAX 1023
48 static char mbuf
[CVT_BUF_MAX
+ 1];
49 static char fbuf
[CVT_BUF_MAX
+ 1];
51 /* Log an error message, then exit... */
53 void log_fatal (const char * fmt
, ... )
57 do_percentm (fbuf
, fmt
);
59 /* %Audit% This is log output. %2004.06.17,Safe%
60 * If we truncate we hope the user can get a hint from the log.
63 vsnprintf (mbuf
, sizeof mbuf
, fbuf
, list
);
67 syslog (LOG_ERR
, "%s", mbuf
);
70 /* Also log it to stderr? */
72 IGNORE_RET (write (STDERR_FILENO
, mbuf
, strlen (mbuf
)));
73 IGNORE_RET (write (STDERR_FILENO
, "\n", 1));
77 log_error ("If you think you have received this message due to a bug rather");
78 log_error ("than a configuration issue please read the section on submitting");
79 log_error ("bugs on either our web page at www.isc.org or in the README file");
80 log_error ("before submitting a bug. These pages explain the proper");
81 log_error ("process and the information we find helpful for debugging.");
83 log_error ("exiting.");
90 /* Log an error message... */
92 int log_error (const char * fmt
, ...)
96 do_percentm (fbuf
, fmt
);
98 /* %Audit% This is log output. %2004.06.17,Safe%
99 * If we truncate we hope the user can get a hint from the log.
101 va_start (list
, fmt
);
102 vsnprintf (mbuf
, sizeof mbuf
, fbuf
, list
);
106 syslog (LOG_ERR
, "%s", mbuf
);
110 IGNORE_RET (write (STDERR_FILENO
, mbuf
, strlen (mbuf
)));
111 IGNORE_RET (write (STDERR_FILENO
, "\n", 1));
119 int log_info (const char *fmt
, ...)
123 do_percentm (fbuf
, fmt
);
125 /* %Audit% This is log output. %2004.06.17,Safe%
126 * If we truncate we hope the user can get a hint from the log.
128 va_start (list
, fmt
);
129 vsnprintf (mbuf
, sizeof mbuf
, fbuf
, list
);
133 syslog (LOG_INFO
, "%s", mbuf
);
137 IGNORE_RET (write (STDERR_FILENO
, mbuf
, strlen (mbuf
)));
138 IGNORE_RET (write (STDERR_FILENO
, "\n", 1));
144 /* Log a debug message... */
146 int log_debug (const char *fmt
, ...)
150 do_percentm (fbuf
, fmt
);
152 /* %Audit% This is log output. %2004.06.17,Safe%
153 * If we truncate we hope the user can get a hint from the log.
155 va_start (list
, fmt
);
156 vsnprintf (mbuf
, sizeof mbuf
, fbuf
, list
);
160 syslog (LOG_DEBUG
, "%s", mbuf
);
164 IGNORE_RET (write (STDERR_FILENO
, mbuf
, strlen (mbuf
)));
165 IGNORE_RET (write (STDERR_FILENO
, "\n", 1));
171 /* Find %m in the input string and substitute an error message string. */
173 void do_percentm (obuf
, ibuf
)
177 const char *s
= ibuf
;
187 m
= strerror (errno
);
192 m
= "<unknown error>";
194 if (len
> CVT_BUF_MAX
)
200 if (++len
> CVT_BUF_MAX
)
208 if (++len
> CVT_BUF_MAX
)
221 extern char *sys_errlist
[];
223 static char errbuf
[128];
225 if (err
< 0 || err
>= sys_nerr
) {
226 sprintf (errbuf
, "Error %d", err
);
229 return sys_errlist
[err
];
231 #endif /* NO_STRERROR */
236 int err
= WSAGetLastError ();
241 return "Permission denied";
243 return "Address already in use";
244 case WSAEADDRNOTAVAIL
:
245 return "Cannot assign requested address";
246 case WSAEAFNOSUPPORT
:
247 return "Address family not supported by protocol family";
249 return "Operation already in progress";
250 case WSAECONNABORTED
:
251 return "Software caused connection abort";
252 case WSAECONNREFUSED
:
253 return "Connection refused";
255 return "Connection reset by peer";
256 case WSAEDESTADDRREQ
:
257 return "Destination address required";
259 return "Bad address";
261 return "Host is down";
262 case WSAEHOSTUNREACH
:
263 return "No route to host";
265 return "Operation now in progress";
267 return "Interrupted function call";
269 return "Invalid argument";
271 return "Socket is already connected";
273 return "Too many open files";
275 return "Message too long";
277 return "Network is down";
279 return "Network dropped connection on reset";
281 return "Network is unreachable";
283 return "No buffer space available";
285 return "Bad protocol option";
287 return "Socket is not connected";
289 return "Socket operation on non-socket";
291 return "Operation not supported";
292 case WSAEPFNOSUPPORT
:
293 return "Protocol family not supported";
295 return "Too many processes";
296 case WSAEPROTONOSUPPORT
:
297 return "Protocol not supported";
299 return "Protocol wrong type for socket";
301 return "Cannot send after socket shutdown";
302 case WSAESOCKTNOSUPPORT
:
303 return "Socket type not supported";
305 return "Connection timed out";
307 return "Resource temporarily unavailable";
308 case WSAHOST_NOT_FOUND
:
309 return "Host not found";
311 case WSA_INVALID_HANDLE
:
312 return "Specified event object handle is invalid";
313 case WSA_INVALID_PARAMETER
:
314 return "One or more parameters are invalid";
315 case WSAINVALIDPROCTABLE
:
316 return "Invalid procedure table from service provider";
317 case WSAINVALIDPROVIDER
:
318 return "Invalid service provider version number";
320 return "Overlapped operations will complete later";
321 case WSA_IO_INCOMPLETE
:
322 return "Overlapped I/O event object not in signaled state";
323 case WSA_NOT_ENOUGH_MEMORY
:
324 return "Insufficient memory available";
326 case WSANOTINITIALISED
:
327 return "Successful WSAStartup not yet performer";
329 return "Valid name, no data record of requested type";
331 return "This is a non-recoverable error";
333 case WSAPROVIDERFAILEDINIT
:
334 return "Unable to initialize a service provider";
335 case WSASYSCALLFAILURE
:
336 return "System call failure";
339 return "Network subsystem is unavailable";
341 return "Non-authoritative host not found";
342 case WSAVERNOTSUPPORTED
:
343 return "WINSOCK.DLL version out of range";
345 return "Graceful shutdown in progress";
347 case WSA_OPERATION_ABORTED
:
348 return "Overlapped operation aborted";
351 return "Unknown WinSock error";