void sys_errpack(int pri, char *fn, int ln, int en, struct sockaddr_in *peer, void *pack, unsigned len, char *fmt, ...) { bstring bt = bfromcstr(""); bstring bt2 = bfromcstr(""); int sz; int n; bvformata(sz, bt, fmt, fmt); if (sz == BSTR_OK) { bassignformat(bt2, ". Packet from %s:%u, length: %d, content:", inet_ntoa(peer->sin_addr), ntohs(peer->sin_port), len); bconcat(bt, bt2); for(n=0; n < len; n++) { bassignformat(bt, " %02hhx", ((unsigned char*)pack)[n]); bconcat(bt, bt2); } if (1) { fprintf(stderr, "%s: %d: %d (%s) %s", fn, ln, en, strerror(en), bt->data); } else { if (en) syslog(pri, "%s: %d: %d (%s) %s", fn, ln, en, strerror(en), bt->data); else syslog(pri, "%s: %d: %s", fn, ln, bt->data); } } bdestroy(bt); bdestroy(bt2); }
js_exception(int line, const char *func, const char *file, const char *msg, ...) { m_msg.format("ERROR: "); bvformata(err, (bstring) &m_msg, msg, msg); m_msg.formata("\nLINE: %d\n" "Function: %s\n" "File: %s\n", line, func, file); }
void sys_err(int pri, char *fn, int ln, int en, const char *fmt, ...) { if (pri==LOG_DEBUG ) { bstring bt = bfromcstralloc(128,""); int sz; bvformata(sz, bt, fmt, fmt); if (sz == BSTR_OK) { if (1) { fprintf(stderr, "%s: %d: %d (%s) %s\n", fn, ln, en, en ? strerror(en) : "Debug", bt->data); } else { if (en) syslog(pri, "%s: %d: %d (%s) %s", fn, ln, en, strerror(en), bt->data); else syslog(pri, "%s: %d: %s", fn, ln, bt->data); } } bdestroy(bt); } }
js_exception(const char *msg, ...) { bvformata(err, (bstring) &m_msg, msg, msg); }
sys_exception(const char *msg, ...) { bvformata(err, (bstring) &m_msg, msg, msg); m_msg += ": "; m_msg += strerror(err); }