summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/util/debug.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/util/debug.c b/lib/util/debug.c
index 578822088f..58905187ee 100644
--- a/lib/util/debug.c
+++ b/lib/util/debug.c
@@ -50,6 +50,7 @@ static struct {
int fd;
enum debug_logtype logtype;
const char *prog_name;
+ bool reopening_logs;
} state;
static bool reopen_logs_scheduled;
@@ -139,6 +140,9 @@ _PUBLIC_ void reopen_logs(void)
{
char *fname = NULL;
int old_fd = state.fd;
+ if (state.reopening_logs) {
+ return;
+ }
switch (state.logtype) {
case DEBUG_STDOUT:
@@ -150,6 +154,7 @@ _PUBLIC_ void reopen_logs(void)
break;
case DEBUG_FILE:
+ state.reopening_logs = true;
if (logfile && (*logfile) == '/') {
fname = strdup(logfile);
} else {
@@ -167,6 +172,7 @@ _PUBLIC_ void reopen_logs(void)
} else {
DEBUG(1, ("Failed to find name for file-based logfile!\n"));
}
+ state.reopening_false = true;
break;
}