Commit bc85c816 authored by Chase Douglas's avatar Chase Douglas Committed by Peter Hutterer
Browse files

Save log file file descriptor for signal context logging



None of the FILE based functions are signal safe, including fileno(), so
we need to save the file descriptor for when we are in signal context.
Signed-off-by: default avatarChase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
parent d3725549
...@@ -108,6 +108,7 @@ void (*OsVendorVErrorFProc) (const char *, va_list args) = NULL; ...@@ -108,6 +108,7 @@ void (*OsVendorVErrorFProc) (const char *, va_list args) = NULL;
#endif #endif
static FILE *logFile = NULL; static FILE *logFile = NULL;
static int logFileFd = -1;
static Bool logFlush = FALSE; static Bool logFlush = FALSE;
static Bool logSync = FALSE; static Bool logSync = FALSE;
static int logVerbosity = DEFAULT_LOG_VERBOSITY; static int logVerbosity = DEFAULT_LOG_VERBOSITY;
...@@ -211,6 +212,8 @@ LogInit(const char *fname, const char *backup) ...@@ -211,6 +212,8 @@ LogInit(const char *fname, const char *backup)
FatalError("Cannot open log file \"%s\"\n", logFileName); FatalError("Cannot open log file \"%s\"\n", logFileName);
setvbuf(logFile, NULL, _IONBF, 0); setvbuf(logFile, NULL, _IONBF, 0);
logFileFd = fileno(logFile);
/* Flush saved log information. */ /* Flush saved log information. */
if (saveBuffer && bufferSize > 0) { if (saveBuffer && bufferSize > 0) {
fwrite(saveBuffer, bufferPos, 1, logFile); fwrite(saveBuffer, bufferPos, 1, logFile);
...@@ -243,6 +246,7 @@ LogClose(enum ExitCode error) ...@@ -243,6 +246,7 @@ LogClose(enum ExitCode error)
(error == EXIT_NO_ERROR) ? "successfully" : "with error", error); (error == EXIT_NO_ERROR) ? "successfully" : "with error", error);
fclose(logFile); fclose(logFile);
logFile = NULL; logFile = NULL;
logFileFd = -1;
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment