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;
}
|