Module: check_mk
Branch: master
Commit: 107dd1c10aebcf63f52f4bef570c83c71ca98770
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=107dd1c10aebcf…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Apr 2 12:19:25 2013 +0200
FIX: Writing one clean message to webserver error_log when write fails
Conflicts:
web/htdocs/htmllib.py
---
ChangeLog | 1 +
web/htdocs/htmllib.py | 19 ++++++++++++++-----
2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 83ccc14..d8d5d1c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -101,6 +101,7 @@
* FIX: hopefully fix computation of Speed-O-Meter
* Add $SERVICEOUTPUT$ and $HOSTOUTPUT$ to allowed macros for
custom notes
+ * FIX: Writing one clean message to webserver error_log when write fails
Notifications:
* FIX: fix event type for recoveries
diff --git a/web/htdocs/htmllib.py b/web/htdocs/htmllib.py
index 5165489..80c85cc 100644
--- a/web/htdocs/htmllib.py
+++ b/web/htdocs/htmllib.py
@@ -190,6 +190,7 @@ class html:
self.have_help = False
self.plugged = False
self.keybindings = []
+ self.io_error = False
RETURN = 13
SHIFT = 16
@@ -197,7 +198,7 @@ class html:
ALT = 18
BACKSPACE = 8
F1 = 112
-
+
def set_buffering(self, b):
self.buffering = b
@@ -246,10 +247,18 @@ class html:
self.lowlevel_write(text)
def lowlevel_write(self, text):
- if self.buffering:
- self.req.write(text, 0)
- else:
- self.req.write(text)
+ if self.io_error:
+ return
+
+ try:
+ if self.buffering:
+ self.req.write(text, 0)
+ else:
+ self.req.write(text)
+ except IOError, e:
+ # Catch writing problems to client, prevent additional writes
+ self.io_error = True
+ self.log('%s' % e)
def plug(self):
self.plugged = True