summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2013-11-09 13:25:03 +0100
committerMichael Adam <obnox@samba.org>2013-11-09 13:34:33 +0100
commit4bbd6e8626475222b0aa37dde62d12d77667accb (patch)
tree2b9d5b257e4cd0b6df3bce23d044eef027e60f8f
parentd652681e8a53a767843ab55a3636d77e183e53f9 (diff)
downloadtinyproxy-4bbd6e8626475222b0aa37dde62d12d77667accb.tar.gz
tinyproxy-4bbd6e8626475222b0aa37dde62d12d77667accb.zip
[BB#109] Fix crash (infinite loop) when writing to log file fails.
Fall back to syslog logging in that case. Signed-off-by: Michael Adam <obnox@samba.org>
-rw-r--r--src/log.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/log.c b/src/log.c
index ba871b2..f5a0b44 100644
--- a/src/log.c
+++ b/src/log.c
@@ -188,8 +188,13 @@ void log_message (int level, const char *fmt, ...)
ret = write (log_file_fd, str, strlen (str));
if (ret == -1) {
- log_message (LOG_WARNING,
- "Could not write to log file");
+ config.syslog = TRUE;
+
+ log_message(LOG_CRIT, "ERROR: Could not write to log "
+ "file %s: %s.",
+ config.logf_name, strerror(errno));
+ log_message(LOG_CRIT,
+ "Falling back to syslog logging");
}
fsync (log_file_fd);