diff --git a/mercurial/hgweb/server.py b/mercurial/hgweb/server.py --- a/mercurial/hgweb/server.py +++ b/mercurial/hgweb/server.py @@ -127,6 +127,11 @@ class _hgwebhandler(object, BaseHTTPServ if h[0].lower() == 'content-length': should_close = False self.length = int(h[1]) + # The value of the Connection header is a list of case-insensitive + # tokens separated by commas and optional whitespace. + if 'close' in [token.strip().lower() for token in + self.headers.get('connection', '').split(',')]: + should_close = True if should_close: self.send_header('Connection', 'close') self.close_connection = should_close