# HG changeset patch # User David Soria Parra # Date 1380614086 -7200 # Node ID 52ed85d9ac265e27ef363fd7e03042194e2f9841 # Parent c172660eee01af28b8f843a9f7a568a4de5bb084 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. diff --git a/mercurial/hgweb/server.py b/mercurial/hgweb/server.py --- a/mercurial/hgweb/server.py +++ b/mercurial/hgweb/server.py @@ -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)]))