/* thread locks added until all non re-entrant functions it uses have been fixed */ int DBG_log(const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ pthread_mutex_lock(&log_mutex); va_start(args, message); vsnprintf(m, sizeof(m), message, args); va_end(args); /* then sanitize anything else that is left. */ sanitize_string(m, sizeof(m)); if (log_to_stderr || pluto_log_fp != NULL) { char buf[34] = ""; if (log_with_timestamp) prettynow(buf, sizeof(buf), "%b %e %T: "); fprintf(log_to_stderr ? stderr : pluto_log_fp, "%c %s%s\n", debug_prefix, buf, m); } if (log_to_syslog) syslog(LOG_DEBUG, "%c %s", debug_prefix, m); if (log_to_perpeer) { char prefix[3]; prefix[0] = debug_prefix; prefix[1] = ' '; prefix[2] = '\n'; peerlog(prefix, m); } pthread_mutex_unlock(&log_mutex); return 0; }
void loglog(int mess_no, const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ va_start(args, message); fmt_log(m, sizeof(m), message, args); va_end(args); log_did_something=TRUE; if (log_to_stderr) { if (log_with_timestamp) { struct tm *timeinfo; char fmt[32]; time_t rtime; time(&rtime); timeinfo = localtime (&rtime); strftime (fmt,sizeof(fmt),"%b %e %T",timeinfo); fprintf(stderr, "%s: %s\n", fmt, m); } else { fprintf(stderr, "%s\n", m); } } if (log_to_syslog) syslog(LOG_WARNING, "%s", m); if (log_to_perpeer) peerlog("", m); whack_log(mess_no, "~%s", m); }
void whack_log(int mess_no, const char *message, ...) { int wfd; pthread_mutex_lock(&log_mutex); wfd = whack_log_fd != NULL_FD ? whack_log_fd : cur_state != NULL ? cur_state->st_whack_sock : NULL_FD; if (wfd != NULL_FD || dying_breath ) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ int prelen = snprintf(m, sizeof(m), "%03d ", mess_no); passert(prelen >= 0); va_start(args, message); fmt_log(m + prelen, sizeof(m) - prelen, message, args); va_end(args); if (dying_breath) { /* status output copied to log */ if (log_to_stderr || pluto_log_fp != NULL) fprintf(log_to_stderr ? stderr : pluto_log_fp, "%s\n", m + prelen); if (log_to_syslog) syslog(LOG_WARNING, "%s", m + prelen); if (log_to_perpeer) peerlog("", m); } if (wfd != NULL_FD) { /* write to whack socket, but suppress possible SIGPIPE */ size_t len = strlen(m); #ifdef MSG_NOSIGNAL /* depends on version of glibc??? */ m[len] = '\n'; /* don't need NUL, do need NL */ (void) send(wfd, m, len + 1, MSG_NOSIGNAL); #else /* !MSG_NOSIGNAL */ int r; struct sigaction act, oldact; m[len] = '\n'; /* don't need NUL, do need NL */ act.sa_handler = SIG_IGN; sigemptyset(&act.sa_mask); act.sa_flags = 0; /* no nothing */ r = sigaction(SIGPIPE, &act, &oldact); passert(r == 0); (void) write(wfd, m, len + 1); r = sigaction(SIGPIPE, &oldact, NULL); passert(r == 0); #endif /* !MSG_NOSIGNAL */ } } pthread_mutex_unlock(&log_mutex); }
/* thread locks added until all non re-entrant functions it uses have been fixed */ void loglog(int mess_no, const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ pthread_mutex_lock(&log_mutex); va_start(args, message); fmt_log(m, sizeof(m), message, args); va_end(args); if (log_to_stderr || pluto_log_fp != NULL) { char buf[34] = ""; if (log_with_timestamp) prettynow(buf, sizeof(buf), "%b %e %T: "); fprintf(log_to_stderr ? stderr : pluto_log_fp, "%s%s\n", buf, m); } if (log_to_syslog) syslog(LOG_WARNING, "%s", m); if (log_to_perpeer) peerlog("", m); pthread_mutex_unlock(&log_mutex); whack_log(mess_no, "~%s", m); }
void loglog(int mess_no, const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ if (DBGP(DBG_CONTROLMORE | DBG_CONTROL)); else if (mess_no == RC_LOG_SERIOUS && strstr(message, "[Tunnel") && !strstr(message, "Info]")); else return; va_start(args, message); fmt_log(m, sizeof(m), message, args); va_end(args); if (log_to_stderr) fprintf(stderr, "%s\n", m); if (log_to_syslog) syslog(LOG_WARNING, "%s", m); if (log_to_perpeer) peerlog("", m); whack_log(mess_no, "~%s", m); NK_LOG_VPN(LOG_WARNING,"%s", m); closelog(); }
void plog(const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ if (DBGP(DBG_CONTROLMORE | DBG_CONTROL)); else if(strstr(message, "Established]") || strstr(message, "Disconnected]")); else return; va_start(args, message); fmt_log(m, sizeof(m), message, args); va_end(args); if (log_to_stderr) fprintf(stderr, "%s\n", m); if (log_to_syslog) syslog(LOG_WARNING, "%s", m); if (log_to_perpeer) peerlog("", m); whack_log(RC_LOG, "~%s", m); NK_LOG_VPN(LOG_WARNING,"%s", m); closelog(); }
void log_errno_routine(int e, const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ va_start(args, message); fmt_log(m, sizeof(m), message, args); va_end(args); #if 0 if (log_to_stderr) fprintf(stderr, "ERROR: %s. Errno %d: %s\n", m, e, strerror(e)); if (log_to_syslog) syslog(LOG_ERR, "ERROR: %s. Errno %d: %s", m, e, strerror(e)); if (log_to_perpeer) { peerlog(strerror(e), m); } whack_log(RC_LOG_SERIOUS , "~ERROR: %s. Errno %d: %s", m, e, strerror(e)); #else if (log_to_stderr) fprintf(stderr, "%s , cause: %s\n", m, strerror(e)); if (log_to_syslog) syslog(LOG_ERR, "%s , cause: %s", m, strerror(e)); if (log_to_perpeer) { peerlog(strerror(e), m); } whack_log(RC_LOG_SERIOUS , "%s, cause: %s", m, strerror(e)); NK_LOG_VPN(LOG_WARNING,"%s", m); closelog(); #endif }
void DBG_log(const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ va_start(args, message); vsnprintf(m, sizeof(m), message, args); va_end(args); (void)sanitize(m, sizeof(m)); if (log_to_stderr) fprintf(stderr, "| %s\n", m); if (log_to_syslog) syslog(LOG_DEBUG, "| %s", m); if (log_to_perpeer) peerlog("| ", m); }
void plog(const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ va_start(args, message); fmt_log(m, sizeof(m), message, args); va_end(args); if (log_to_stderr) fprintf(stderr, "%s\n", m); if (log_to_syslog) syslog(LOG_WARNING, "%s", m); if (log_to_perpeer) peerlog("", m); whack_log(RC_LOG, "~%s", m); }
void libreswan_log_errno_routine(int e, const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ va_start(args, message); fmt_log(m, sizeof(m), message, args); va_end(args); if (log_to_stderr || pluto_log_fp != NULL) fprintf(log_to_stderr ? stderr : pluto_log_fp, "ERROR: %s. Errno %d: %s\n", m, e, strerror(e)); if (log_to_syslog) syslog(LOG_ERR, "ERROR: %s. Errno %d: %s", m, e, strerror(e)); if (log_to_perpeer) peerlog(strerror(e), m); whack_log(RC_LOG_SERIOUS, "~ERROR: %s. Errno %d: %s", m, e, strerror(e)); }
void exit_log(const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ va_start(args, message); fmt_log(m, sizeof(m), message, args); va_end(args); if (log_to_stderr) fprintf(stderr, "FATAL ERROR: %s\n", m); if (log_to_syslog) syslog(LOG_ERR, "FATAL ERROR: %s", m); if (log_to_perpeer) peerlog("FATAL ERROR: ", m); whack_log(RC_LOG_SERIOUS, "~FATAL ERROR: %s", m); exit_pluto(1); }
int DBG_log(const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ va_start(args, message); vsnprintf(m, sizeof(m), message, args); va_end(args); /* then sanitize anything else that is left. */ (void)sanitize_string(m, sizeof(m)); if (log_to_stderr) { if (log_with_timestamp) { struct tm *timeinfo; char fmt[32]; time_t rtime; time(&rtime); timeinfo = localtime (&rtime); strftime (fmt,sizeof(fmt),"%b %e %T",timeinfo); fprintf(stderr, "%c %s: %s\n", debug_prefix, fmt, m); } else { fprintf(stderr, "%c %s\n", debug_prefix, m); } } if (log_to_syslog) syslog(LOG_DEBUG, "%c %s", debug_prefix, m); if (log_to_perpeer) { char prefix[3]; prefix[0]=debug_prefix; prefix[1]=' '; prefix[2]='\n'; peerlog(prefix, m); } return 0; }
void openswan_exit_log_errno_routine(int e, const char *message, ...) { va_list args; char m[LOG_WIDTH]; /* longer messages will be truncated */ va_start(args, message); fmt_log(m, sizeof(m), message, args); va_end(args); log_did_something=TRUE; if (log_to_stderr) fprintf(stderr, "FATAL ERROR: %s. Errno %d: %s\n", m, e, strerror(e)); if (log_to_syslog) syslog(LOG_ERR, "FATAL ERROR: %s. Errno %d: %s", m, e, strerror(e)); if (log_to_perpeer) peerlog(strerror(e), m); whack_log(RC_LOG_SERIOUS , "~FATAL ERROR: %s. Errno %d: %s", m, e, strerror(e)); exit_pluto(1); }