Mercurial > public > mercurial-scm > hg-stable
diff mercurial/hgweb/hgweb_mod.py @ 12739:8dcd3203a261
hgweb: don't send a body or illegal headers during 304 response
Without this fix, mod_wsgi and spawning get in a wedged state after
sending a 304 response. Not sending a body fixed that problem. The
header change was discovered by using wsgiref.validate.validator to
check for other errors.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Sat, 16 Oct 2010 17:29:04 -0500 |
parents | ef969e58a394 |
children | 61a898576888 |
line wrap: on
line diff
--- a/mercurial/hgweb/hgweb_mod.py Sat Oct 16 22:40:46 2010 +0200 +++ b/mercurial/hgweb/hgweb_mod.py Sat Oct 16 17:29:04 2010 -0500 @@ -9,7 +9,8 @@ import os from mercurial import ui, hg, hook, error, encoding, templater from common import get_mtime, ErrorResponse, permhooks, caching -from common import HTTP_OK, HTTP_BAD_REQUEST, HTTP_NOT_FOUND, HTTP_SERVER_ERROR +from common import HTTP_OK, HTTP_NOT_MODIFIED, HTTP_BAD_REQUEST +from common import HTTP_NOT_FOUND, HTTP_SERVER_ERROR from request import wsgirequest import webcommands, protocol, webutil @@ -202,6 +203,9 @@ return tmpl('error', error=str(inst)) except ErrorResponse, inst: req.respond(inst, ctype) + if inst.code == HTTP_NOT_MODIFIED: + # Not allowed to return a body on a 304 + return [''] return tmpl('error', error=inst.message) def templater(self, req):