Annotation of embedaddon/coova-chilli/src/syserr.c, revision 1.1.1.1
1.1 misho 1: /*
2: *
3: * Syslog functions.
4: * Copyright (C) 2003, 2004 Mondru AB.
5: * Copyright (c) 2006-2007 David Bird <david@coova.com>
6: *
7: * The contents of this file may be used under the terms of the GNU
8: * General Public License Version 2, provided that the above copyright
9: * notice and this permission notice is included in all copies or
10: * substantial portions of the software.
11: *
12: */
13:
14: #include "system.h"
15: #include "syserr.h"
16: #include "radius.h"
17: #include "md5.h"
18: #include "dhcp.h"
19: #include "redir.h"
20: #include "chilli.h"
21: #include "options.h"
22: #include "bstrlib.h"
23:
24: void sys_err(int pri, char *fn, int ln, int en, const char *fmt, ...) {
25: if (pri==LOG_DEBUG && !options.debug) return;
26: {
27: bstring bt = bfromcstralloc(128,"");
28: int sz;
29:
30: bvformata(sz, bt, fmt, fmt);
31:
32: if (options.foreground && options.debug) {
33: fprintf(stderr, "%s: %d: %d (%s) %s\n", fn, ln, en, en ? strerror(en) : "Debug", bt->data);
34: } else {
35: if (en)
36: syslog(pri, "%s: %d: %d (%s) %s", fn, ln, en, strerror(en), bt->data);
37: else
38: syslog(pri, "%s: %d: %s", fn, ln, bt->data);
39: }
40:
41: bdestroy(bt);
42: }
43: }
44:
45: void sys_errpack(int pri, char *fn, int ln, int en, struct sockaddr_in *peer,
46: void *pack, unsigned len, char *fmt, ...) {
47: bstring bt = bfromcstr("");
48: bstring bt2 = bfromcstr("");
49: int sz;
50: int n;
51:
52: bvformata(sz, bt, fmt, fmt);
53:
54: bassignformat(bt2, ". Packet from %s:%u, length: %d, content:",
55: inet_ntoa(peer->sin_addr),
56: ntohs(peer->sin_port),
57: len);
58:
59: bconcat(bt, bt2);
60:
61: for(n=0; n < len; n++) {
62: bassignformat(bt, " %02hhx", ((unsigned char*)pack)[n]);
63: bconcat(bt, bt2);
64: }
65:
66: if (options.foreground && options.debug) {
67: fprintf(stderr, "%s: %d: %d (%s) %s", fn, ln, en, strerror(en), bt->data);
68: } else {
69: if (en)
70: syslog(pri, "%s: %d: %d (%s) %s", fn, ln, en, strerror(en), bt->data);
71: else
72: syslog(pri, "%s: %d: %s", fn, ln, bt->data);
73: }
74:
75: bdestroy(bt);
76: bdestroy(bt2);
77: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>