##// END OF EJS Templates
hgweb: skip body creation of HEAD for most requests...
Joerg Sonnenberger -
r50741:fda5a4b8 default
parent child Browse files
Show More
@@ -230,6 +230,7 b' class requestcontext:'
230
230
231 def sendtemplate(self, name, **kwargs):
231 def sendtemplate(self, name, **kwargs):
232 """Helper function to send a response generated from a template."""
232 """Helper function to send a response generated from a template."""
233 if self.req.method != b'HEAD':
233 kwargs = pycompat.byteskwargs(kwargs)
234 kwargs = pycompat.byteskwargs(kwargs)
234 self.res.setbodygen(self.tmpl.generate(name, kwargs))
235 self.res.setbodygen(self.tmpl.generate(name, kwargs))
235 return self.res.sendresponse()
236 return self.res.sendresponse()
@@ -485,6 +485,7 b' class wsgiresponse:'
485 self._bodybytes is None
485 self._bodybytes is None
486 and self._bodygen is None
486 and self._bodygen is None
487 and not self._bodywillwrite
487 and not self._bodywillwrite
488 and self._req.method != b'HEAD'
488 ):
489 ):
489 raise error.ProgrammingError(b'response body not defined')
490 raise error.ProgrammingError(b'response body not defined')
490
491
@@ -594,6 +595,8 b' class wsgiresponse:'
594 yield chunk
595 yield chunk
595 elif self._bodywillwrite:
596 elif self._bodywillwrite:
596 self._bodywritefn = write
597 self._bodywritefn = write
598 elif self._req.method == b'HEAD':
599 pass
597 else:
600 else:
598 error.ProgrammingError(b'do not know how to send body')
601 error.ProgrammingError(b'do not know how to send body')
599
602
@@ -151,6 +151,9 b' class _httprequesthandler(httpservermod.'
151 def do_GET(self):
151 def do_GET(self):
152 self.do_POST()
152 self.do_POST()
153
153
154 def do_HEAD(self):
155 self.do_POST()
156
154 def do_hgweb(self):
157 def do_hgweb(self):
155 self.sent_headers = False
158 self.sent_headers = False
156 path, query = _splitURI(self.path)
159 path, query = _splitURI(self.path)
@@ -246,7 +249,11 b' class _httprequesthandler(httpservermod.'
246 self.send_header(*h)
249 self.send_header(*h)
247 if h[0].lower() == 'content-length':
250 if h[0].lower() == 'content-length':
248 self.length = int(h[1])
251 self.length = int(h[1])
249 if self.length is None and saved_status[0] != common.HTTP_NOT_MODIFIED:
252 if (
253 self.length is None
254 and saved_status[0] != common.HTTP_NOT_MODIFIED
255 and self.command != 'HEAD'
256 ):
250 self._chunked = (
257 self._chunked = (
251 not self.close_connection and self.request_version == 'HTTP/1.1'
258 not self.close_connection and self.request_version == 'HTTP/1.1'
252 )
259 )
@@ -1299,6 +1299,9 b' def archive(web):'
1299 b'sendresponse() should not emit data if writing later'
1299 b'sendresponse() should not emit data if writing later'
1300 )
1300 )
1301
1301
1302 if web.req.method == b'HEAD':
1303 return []
1304
1302 bodyfh = web.res.getbodyfile()
1305 bodyfh = web.res.getbodyfile()
1303
1306
1304 archival.archive(
1307 archival.archive(
General Comments 0
You need to be logged in to leave comments. Login now