changeset 13571:84bd3fd63afc

hgweb_mod: respond right away if the client specified 100-continue support Clients that send 100-continue should make sure they really support continue intelligently. In a later patch we'll introduce a capability so new clients don't pay a performance penalty talking to old servers.
author Augie Fackler <durin42@gmail.com>
date Fri, 07 Jan 2011 15:19:21 -0600
parents 617a87cb7eb2
children 1bb2a56a9d73
files mercurial/hgweb/hgweb_mod.py
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/hgweb/hgweb_mod.py	Sat Feb 06 04:27:28 2010 -0600
+++ b/mercurial/hgweb/hgweb_mod.py	Fri Jan 07 15:19:21 2011 -0600
@@ -121,7 +121,11 @@
                     self.check_perm(req, perms[cmd])
                 return protocol.call(self.repo, req, cmd)
             except ErrorResponse, inst:
-                if cmd == 'unbundle':
+                # A client that sends unbundle without 100-continue will
+                # break if we respond early.
+                if (cmd == 'unbundle' and
+                    req.env.get('HTTP_EXPECT',
+                                '').lower() != '100-continue'):
                     req.drain()
                 req.respond(inst, protocol.HGTYPE)
                 return '0\n%s\n' % inst.message