Add braces to empty conditional blocks
[openafs.git] / src / util / serverLog.c
index c77c60e..a250d65 100644 (file)
@@ -149,8 +149,9 @@ WriteLogBuffer(char *buf, afs_uint32 len)
 {
     LOCK_SERVERLOG();
     if (serverLogFD >= 0) {
-       if (write(serverLogFD, buf, len) < 0)
-           ; /* don't care */
+       if (write(serverLogFD, buf, len) < 0) {
+           /* don't care */
+        }
     }
     UNLOCK_SERVERLOG();
 }
@@ -204,8 +205,9 @@ vFSLog(const char *format, va_list args)
     } else
 #endif
     if (serverLogFD >= 0) {
-       if (write(serverLogFD, tbuffer, len) < 0)
-           ; /* don't care */
+       if (write(serverLogFD, tbuffer, len) < 0) {
+           /* don't care */
+        }
     }
     UNLOCK_SERVERLOG();
 
@@ -443,6 +445,29 @@ ResetDebug_Signal(int signo)
     }
 }                              /*ResetDebug_Signal */
 
+/*!
+ * Handle requests to reopen the log.
+ *
+ * This signal handler will reopen the log file. A new, empty log file
+ * will be created if the log file does not already exist.
+ *
+ * External log rotation programs may rotate a server log file by
+ * renaming the existing server log file and then immediately sending a
+ * signal to the corresponding server process.  Server log messages will
+ * continue to be appended to the renamed server log file until the
+ * server log is reopened.  After this signal handler completes, server
+ * log messages will be written to the new log file.  This allows
+ * external log rotation programs to rotate log files without
+ * messages being dropped.
+ */
+void
+ReOpenLog_Signal(int signo)
+{
+    ReOpenLog();
+    if (resetSignals) {
+       (void)signal(signo, ReOpenLog_Signal);
+    }
+}
 
 #ifdef AFS_PTHREAD_ENV
 /*!
@@ -455,6 +480,7 @@ SetupLogSoftSignals(void)
 {
     opr_softsig_Register(SIGHUP, ResetDebug_Signal);
     opr_softsig_Register(SIGTSTP, SetDebug_Signal);
+    opr_softsig_Register(SIGUSR1, ReOpenLog_Signal);
 #ifndef AFS_NT40_ENV
     (void)signal(SIGPIPE, SIG_IGN);
 #endif
@@ -474,8 +500,8 @@ SetupLogSignals(void)
 {
     resetSignals = 1;
     (void)signal(SIGHUP, ResetDebug_Signal);
-    /* Note that we cannot use SIGUSR1 -- Linux stole it for pthreads! */
     (void)signal(SIGTSTP, SetDebug_Signal);
+    (void)signal(SIGUSR1, ReOpenLog_Signal);
 #ifndef AFS_NT40_ENV
     (void)signal(SIGPIPE, SIG_IGN);
 #endif
@@ -499,8 +525,9 @@ InitServerLogMutex(void)
 static void
 RedirectStdStreams(const char *fileName)
 {
-    if (freopen(fileName, "a", stdout) == NULL)
-       ; /* don't care */
+    if (freopen(fileName, "a", stdout) == NULL) {
+       /* don't care */
+    }
     if (freopen(fileName, "a", stderr) != NULL) {
 #ifdef HAVE_SETVBUF
        setvbuf(stderr, NULL, _IONBF, 0);