From c33752c7199f3e228565c6b16f0633b2c567f7d0 Mon Sep 17 00:00:00 2001 From: Michael Klein Date: Thu, 12 Jan 2023 20:46:36 +0100 Subject: [PATCH] sanei: replace non-portable isfdtype() with fstat() --- sanei/sanei_init_debug.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/sanei/sanei_init_debug.c b/sanei/sanei_init_debug.c index 62fed63..0af58a4 100644 --- a/sanei/sanei_init_debug.c +++ b/sanei/sanei_init_debug.c @@ -97,30 +97,31 @@ sanei_debug_msg (int level, int max_level, const char *be, const char *fmt, va_list ap) { char *msg; - + if (max_level >= level) { - if ( 1 == isfdtype(fileno(stderr), S_IFSOCK) ) - { - msg = (char *)malloc (sizeof(char) * (strlen(be) + strlen(fmt) + 4)); - if (msg == NULL) - { - syslog (LOG_DEBUG, "[sanei_debug] malloc() failed\n"); - vsyslog (LOG_DEBUG, fmt, ap); - } - else - { - sprintf (msg, "[%s] %s", be, fmt); + struct stat sb; + if ( 0 == fstat(fileno(stderr), &sb) && S_IFSOCK == (sb.st_mode & S_IFMT) ) + { + msg = (char *)malloc (sizeof(char) * (strlen(be) + strlen(fmt) + 4)); + if (msg == NULL) + { + syslog (LOG_DEBUG, "[sanei_debug] malloc() failed\n"); + vsyslog (LOG_DEBUG, fmt, ap); + } + else + { + sprintf (msg, "[%s] %s", be, fmt); vsyslog(LOG_DEBUG, msg, ap); - free (msg); - } - } + free (msg); + } + } else - { - fprintf (stderr, "[%s] ", be); + { + fprintf (stderr, "[%s] ", be); vfprintf (stderr, fmt, ap); - } - + } + } }