Use log_generic for vapplog to cut down on code duplication
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
diff --git a/logging.c b/logging.c
index aba6f60..fb3868f 100644
--- a/logging.c
+++ b/logging.c
@@ -39,49 +39,14 @@ static void my_log_curses(__maybe_unused int prio, char *f, va_list ap)
}
}
+static void log_generic(int prio, const char *fmt, va_list ap);
+
void vapplog(int prio, const char *fmt, va_list ap)
{
if (!opt_debug && prio == LOG_DEBUG)
return;
-
-#ifdef HAVE_SYSLOG_H
- if (use_syslog) {
- vsyslog(prio, fmt, ap);
- }
-#else
- if (0) {}
-#endif
- else if (opt_log_output || prio <= LOG_NOTICE) {
- char *f;
- int len;
- struct timeval tv = {0, 0};
- struct tm *tm;
-
- gettimeofday(&tv, NULL);
-
- tm = localtime(&tv.tv_sec);
-
- len = 40 + strlen(fmt) + 22;
- f = alloca(len);
- sprintf(f, " [%d-%02d-%02d %02d:%02d:%02d] %s\n",
- tm->tm_year + 1900,
- tm->tm_mon + 1,
- tm->tm_mday,
- tm->tm_hour,
- tm->tm_min,
- tm->tm_sec,
- fmt);
- /* Only output to stderr if it's not going to the screen as well */
- if (!isatty(fileno((FILE *)stderr))) {
- va_list apc;
-
- va_copy(apc, ap);
- vfprintf(stderr, f, apc); /* atomic write to stderr */
- fflush(stderr);
- }
-
- my_log_curses(prio, f, ap);
- }
+ if (use_syslog || opt_log_output || prio <= LOG_NOTICE)
+ log_generic(prio, fmt, ap);
}
void applog(int prio, const char *fmt, ...)
@@ -100,7 +65,7 @@ void applog(int prio, const char *fmt, ...)
* generic log function used by priority specific ones
* equals vapplog() without additional priority checks
*/
-static void __maybe_unused log_generic(int prio, const char *fmt, va_list ap)
+static void log_generic(int prio, const char *fmt, va_list ap)
{
#ifdef HAVE_SYSLOG_H
if (use_syslog) {