# HG changeset patch # User Alexis S. L. Carvalho # Date 1152293631 10800 # Node ID 276de216d2c5c0a9fffb07dc0688115567ca3548 # Parent 54b15237958981fa6d4c0c3692fc9cd7191e52d5 Respect "Connection: close" headers sent by HTTP clients. A HTTP client can indicate that it doesn't support (or doesn't want) persistent connections by sending this header. This not only makes the server more compliant with the RFC, but also reduces the run time of test-http-proxy when run with python 2.3 from ~125s to ~5s (it doesn't affect it with python 2.4, which was already ~5s). diff -r 54b152379589 -r 276de216d2c5 mercurial/hgweb/server.py --- a/mercurial/hgweb/server.py Sun Jul 09 11:10:11 2006 +0200 +++ b/mercurial/hgweb/server.py Fri Jul 07 14:33:51 2006 -0300 @@ -127,6 +127,11 @@ 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