diff options
Diffstat (limited to 'lib/syserr.c')
-rw-r--r-- | lib/syserr.c | 87 |
1 files changed, 45 insertions, 42 deletions
diff --git a/lib/syserr.c b/lib/syserr.c index 002d8c3..048cd45 100644 --- a/lib/syserr.c +++ b/lib/syserr.c @@ -20,52 +20,55 @@ #include "syserr.h" +void sys_err(int pri, char *fn, int ln, int en, char *fmt, ...) +{ + va_list args; + char buf[SYSERR_MSGSIZE]; -void sys_err(int pri, char *fn, int ln, int en, char *fmt, ...) { - va_list args; - char buf[SYSERR_MSGSIZE]; - - va_start(args, fmt); - vsnprintf(buf, SYSERR_MSGSIZE, fmt, args); - va_end(args); - buf[SYSERR_MSGSIZE-1] = 0; /* Make sure it is null terminated */ - if (en) - syslog(pri, "%s: %d: %d (%s) %s", fn, ln, en, strerror(en), buf); - else - syslog(pri, "%s: %d: %s", fn, ln, buf); + va_start(args, fmt); + vsnprintf(buf, SYSERR_MSGSIZE, fmt, args); + va_end(args); + buf[SYSERR_MSGSIZE - 1] = 0; /* Make sure it is null terminated */ + if (en) + syslog(pri, "%s: %d: %d (%s) %s", fn, ln, en, strerror(en), + buf); + else + syslog(pri, "%s: %d: %s", fn, ln, buf); } void sys_errpack(int pri, char *fn, int ln, int en, struct sockaddr_in *peer, - void *pack, unsigned len, char *fmt, ...) { - - va_list args; - char buf[SYSERR_MSGSIZE]; - char buf2[SYSERR_MSGSIZE]; - unsigned int n; - int pos; - - va_start(args, fmt); - vsnprintf(buf, SYSERR_MSGSIZE, fmt, args); - va_end(args); - buf[SYSERR_MSGSIZE-1] = 0; + void *pack, unsigned len, char *fmt, ...) +{ + + va_list args; + char buf[SYSERR_MSGSIZE]; + char buf2[SYSERR_MSGSIZE]; + unsigned int n; + int pos; + + va_start(args, fmt); + vsnprintf(buf, SYSERR_MSGSIZE, fmt, args); + va_end(args); + buf[SYSERR_MSGSIZE - 1] = 0; + + snprintf(buf2, SYSERR_MSGSIZE, + "Packet from %s:%u, length: %d, content:", + inet_ntoa(peer->sin_addr), ntohs(peer->sin_port), len); + buf2[SYSERR_MSGSIZE - 1] = 0; + pos = strlen(buf2); + for (n = 0; n < len; n++) { + if ((pos + 4) < SYSERR_MSGSIZE) { + sprintf((buf2 + pos), " %02hhx", + ((unsigned char *)pack)[n]); + pos += 3; + } + } + buf2[pos] = 0; - snprintf(buf2, SYSERR_MSGSIZE, "Packet from %s:%u, length: %d, content:", - inet_ntoa(peer->sin_addr), - ntohs(peer->sin_port), - len); - buf2[SYSERR_MSGSIZE-1] = 0; - pos = strlen(buf2); - for(n=0; n<len; n++) { - if ((pos+4)<SYSERR_MSGSIZE) { - sprintf((buf2+pos), " %02hhx", ((unsigned char*)pack)[n]); - pos += 3; - } - } - buf2[pos] = 0; - - if (en) - syslog(pri, "%s: %d: %d (%s) %s. %s", fn, ln, en, strerror(en), buf, buf2); - else - syslog(pri, "%s: %d: %s. %s", fn, ln, buf, buf2); + if (en) + syslog(pri, "%s: %d: %d (%s) %s. %s", fn, ln, en, strerror(en), + buf, buf2); + else + syslog(pri, "%s: %d: %s. %s", fn, ln, buf, buf2); } |