void xxx_printf(const char *format,...) { char buf[MAX_STD_BUF+1]; va_list ap;
va_start(ap, format);
vsnprintf(buf, MAX_STD_BUF, format, ap); buf[MAX_STD_BUF] = '\0';
if(res_daemon) { syslog(LOG_CONS | LOG_DAEMON | LOG_ERR, " %s", buf); } else if(res_debug) { //fprintf(stderr, "%s", buf);
printf("%s",buf); #if defined(WIN32) && defined(ENABLE_WIN32_SERVICE) CreateApplicationEventLogEntry(buf); #endif } else ;
return; }
void xxx_fatal_error(const char *format,...) { char buf[MAX_STD_BUF+1]; va_list ap;
va_start(ap, format);
vsnprintf(buf, MAX_STD_BUF, format, ap); buf[MAX_STD_BUF] = '\0';
if(res_daemon) { syslog(LOG_CONS | LOG_DAEMON | LOG_ERR, "FATAL ERROR: %s", buf); } else if(res_debug) { fprintf(stderr, "ERROR: %s", buf); fprintf(stderr,"Fatal Error, Quitting..\n"); #if defined(WIN32) && defined(ENABLE_WIN32_SERVICE) CreateApplicationEventLogEntry(buf); #endif } else ;
exit(1); }
int xxx_snprintf(char *buf, size_t buf_size, const char *format, ...) { va_list ap; int ret;
if (buf == NULL || buf_size <= 0 || format == NULL) return -1;
/* zero first byte in case an error occurs with * vsnprintf, so buffer is null terminated with * zero length */ buf[0] = '\0'; buf[buf_size - 1] = '\0';
va_start(ap, format);
ret = vsnprintf(buf, buf_size, format, ap);
va_end(ap);
if (ret < 0) return -1;
if (buf[buf_size - 1] != '\0' || ret >= buf_size) { /* result was truncated */ buf[buf_size - 1] = '\0'; return 1; }
return 0; }
|