Disable logging to stderr if it is not a tty
authorMichael Spang <mspang@csclub.uwaterloo.ca>
Sat, 31 Jan 2009 04:40:22 +0000 (23:40 -0500)
committerMichael Spang <mspang@csclub.uwaterloo.ca>
Sat, 31 Jan 2009 04:40:22 +0000 (23:40 -0500)
src/addclub.c
src/addmember.c
src/util.c
src/util.h

index f8d8016..b2cdbef 100644 (file)
@@ -146,7 +146,7 @@ int main(int argc, char *argv[]) {
     int opt;
 
     prog = basename(argv[0]);
-    openlog(prog, 0, LOG_AUTHPRIV);
+    init_log(prog, LOG_PID, LOG_AUTHPRIV);
 
     configure();
 
index 7decb9a..b7ad875 100644 (file)
@@ -154,7 +154,7 @@ int main(int argc, char *argv[]) {
     int opt;
 
     prog = basename(argv[0]);
-    openlog(prog, 0, LOG_AUTHPRIV);
+    init_log(prog, LOG_PID, LOG_AUTHPRIV);
 
     configure();
 
index 917b864..f373fe0 100644 (file)
 
 static char message[4096];
 
+static int log_stderr = 1;
+
+void init_log(const char *ident, int option, int facility) {
+    openlog(ident, option, facility);
+    log_stderr = isatty(STDERR_FILENO);
+}
+
 static void errmsg(int prio, const char *prefix, const char *fmt, va_list args) {
     char *msgp = message;
 
@@ -25,7 +32,8 @@ static void errmsg(int prio, const char *prefix, const char *fmt, va_list args)
     *msgp++ = '\0';
 
     syslog(prio, "%s", message);
-    fputs(message, stderr);
+    if (log_stderr)
+        fputs(message, stderr);
 }
 
 static void errmsgpe(int prio, const char *prefix, const char *fmt, va_list args) {
@@ -47,7 +55,8 @@ static void errmsgpe(int prio, const char *prefix, const char *fmt, va_list args
     *msgp++ = '\0';
 
     syslog(prio, "%s", message);
-    fputs(message, stderr);
+    if (log_stderr)
+        fputs(message, stderr);
 }
 
 NORETURN static void die(int prio, const char *prefix, const char *msg, va_list args) {
index bd01b11..a4ab2d2 100644 (file)
@@ -16,6 +16,7 @@
 #endif
 
 int spawnv(const char *, char *[]);
+void init_log(const char *ident, int option, int facility);
 
 NORETURN void fatal(const char *, ...);
 NORETURN void fatalpe(const char *, ...);