From 34acd854c802885a748a129ec6a828982ddace71 Mon Sep 17 00:00:00 2001
From: Mark Grondona <mgrondona@llnl.gov>
Date: Fri, 28 Mar 2003 21:56:43 +0000
Subject: [PATCH]  o reopen logfile on _log_init()  o reinitialize buffers on
 _log_init()

---
 src/common/log.c      | 20 ++++++++++++--------
 src/common/safeopen.h |  2 ++
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/common/log.c b/src/common/log.c
index 3ab0ecdf02f..dd73c440455 100644
--- a/src/common/log.c
+++ b/src/common/log.c
@@ -167,14 +167,14 @@ _log_init(char *prog, log_options_t opt, log_facility_t fac, char *logfile )
 
 	log->opt = opt;
 
+	if (log->buf) 
+		cbuf_destroy(log->buf);
+	if (log->fbuf)
+		cbuf_destroy(log->fbuf);
+
 	if (log->opt.buffered) {
 		log->buf  = cbuf_create(128, 8192);
 		log->fbuf = cbuf_create(128, 8192);
-	} else {
-		if (log->buf) 
-			cbuf_destroy(log->buf);
-		if (log->fbuf)
-			cbuf_destroy(log->fbuf);
 	}
 
 	if (log->opt.syslog_level > LOG_LEVEL_QUIET)
@@ -195,8 +195,12 @@ _log_init(char *prog, log_options_t opt, log_facility_t fac, char *logfile )
 			xfree(errmsg);
 			rc = errno;
 			goto out;
-		} else
-			log->logfp = fp;
+		} 
+
+		if (log->logfp)
+			fclose(log->logfp); /* Ignore errors */
+
+		log->logfp = fp;
 	}
 
 	log->initialized = 1;
@@ -569,7 +573,7 @@ log_flush()
 	if (log->opt.stderr_level) 
 		cbuf_read_to_fd(log->buf, fileno(stderr), -1);
 	else if (log->logfp)
-		cbuf_read_to_fd(log->buf, fileno(log->logfp), -1);
+		cbuf_read_to_fd(log->fbuf, fileno(log->logfp), -1);
 
     done:
 	slurm_mutex_unlock(&log_lock);
diff --git a/src/common/safeopen.h b/src/common/safeopen.h
index cb2948036ca..ecc428ea89d 100644
--- a/src/common/safeopen.h
+++ b/src/common/safeopen.h
@@ -7,6 +7,8 @@
 #ifndef _SAFEOPEN_H
 #define _SAFEOPEN_H
 
+#include <unistd.h>
+
 /* safeopen flags:
  *
  * default is to create if needed, and fail if path is a soft link
-- 
GitLab