diff mercurial/hgweb/server.py @ 19877:52ed85d9ac26 stable

hgweb: log headers only if headers were successfully parsed The headers attribute is not initialized in certain error situations (e.g. http 400 bad request). Check for self.headers before we attempt to access it.
author David Soria Parra <dsp@experimentalworks.net>
date Tue, 01 Oct 2013 09:54:46 +0200
parents a4d7fd7ad1f7
children 6863d42eb59a
line wrap: on
line diff
--- a/mercurial/hgweb/server.py	Mon Oct 07 17:47:19 2013 -0400
+++ b/mercurial/hgweb/server.py	Tue Oct 01 09:54:46 2013 +0200
@@ -60,7 +60,10 @@
         self._log_any(self.server.accesslog, format, *args)
 
     def log_request(self, code='-', size='-'):
-        xheaders = [h for h in self.headers.items() if h[0].startswith('x-')]
+        xheaders = []
+        if util.safehasattr(self, 'headers'):
+            xheaders = [h for h in self.headers.items()
+                        if h[0].startswith('x-')]
         self.log_message('"%s" %s %s%s',
                          self.requestline, str(code), str(size),
                          ''.join([' %s:%s' % h for h in sorted(xheaders)]))