Mercurial > hg
changeset 18347:853221386f48
hgweb: make type a mandatory parameter to request.respond
There will thus always be headers and the runtime check can be removed.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Tue, 15 Jan 2013 01:05:12 +0100 |
parents | 6c2563b2c1c6 |
children | 764a758780b6 |
files | mercurial/hgweb/request.py mercurial/hgweb/webcommands.py |
diffstat | 2 files changed, 5 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/request.py Tue Jan 15 01:05:12 2013 +0100 +++ b/mercurial/hgweb/request.py Tue Jan 15 01:05:12 2013 +0100 @@ -70,12 +70,10 @@ for s in util.filechunkiter(self.inp, limit=length): pass - def respond(self, status, type=None, filename=None, length=None): + def respond(self, status, type, filename=None, length=None): if self._start_response is not None: self.httphdr(type, filename, length) - if not self.headers: - raise RuntimeError("request.write called before headers sent") for k, v in self.headers: if not isinstance(v, str): @@ -125,10 +123,9 @@ def header(self, headers=[('Content-Type','text/html')]): self.headers.extend(headers) - def httphdr(self, type=None, filename=None, length=None, headers={}): + def httphdr(self, type, filename=None, length=None, headers={}): headers = headers.items() - if type is not None: - headers.append(('Content-Type', type)) + headers.append(('Content-Type', type)) if filename: filename = (filename.split('/')[-1] .replace('\\', '\\\\').replace('"', '\\"'))
--- a/mercurial/hgweb/webcommands.py Tue Jan 15 01:05:12 2013 +0100 +++ b/mercurial/hgweb/webcommands.py Tue Jan 15 01:05:12 2013 +0100 @@ -800,13 +800,12 @@ name = "%s-%s" % (reponame, arch_version) mimetype, artype, extension, encoding = web.archive_specs[type_] headers = [ - ('Content-Type', mimetype), ('Content-Disposition', 'attachment; filename=%s%s' % (name, extension)) - ] + ] if encoding: headers.append(('Content-Encoding', encoding)) req.header(headers) - req.respond(HTTP_OK) + req.respond(HTTP_OK, mimetype) ctx = webutil.changectx(web.repo, req) archival.archive(web.repo, req, cnode, artype, prefix=name,