comparison tests/badserverext.py @ 33192:c538fca0d511

configitems: register the 'badserver.closeafterrecvbytes' config
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 30 Jun 2017 03:27:44 +0200
parents 8065b4ab0ed7
children cbb50fd830ea
comparison
equal deleted inserted replaced
33191:8065b4ab0ed7 33192:c538fca0d511
44 configtable = {} 44 configtable = {}
45 configitem = registrar.configitem(configtable) 45 configitem = registrar.configitem(configtable)
46 46
47 configitem('badserver', 'closeafteraccept', 47 configitem('badserver', 'closeafteraccept',
48 default=False, 48 default=False,
49 )
50 configitem('badserver', 'closeafterrecvbytes',
51 default=0,
49 ) 52 )
50 53
51 # We can't adjust __class__ on a socket instance. So we define a proxy type. 54 # We can't adjust __class__ on a socket instance. So we define a proxy type.
52 class socketproxy(object): 55 class socketproxy(object):
53 __slots__ = ( 56 __slots__ = (
265 # self.finish_request() which calls self.RequestHandlerClass() which 268 # self.finish_request() which calls self.RequestHandlerClass() which
266 # is a hgweb.server._httprequesthandler. 269 # is a hgweb.server._httprequesthandler.
267 def process_request(self, socket, address): 270 def process_request(self, socket, address):
268 # Wrap socket in a proxy if we need to count bytes. 271 # Wrap socket in a proxy if we need to count bytes.
269 closeafterrecvbytes = self._ui.configint('badserver', 272 closeafterrecvbytes = self._ui.configint('badserver',
270 'closeafterrecvbytes', 0) 273 'closeafterrecvbytes')
271 closeaftersendbytes = self._ui.configint('badserver', 274 closeaftersendbytes = self._ui.configint('badserver',
272 'closeaftersendbytes', 0) 275 'closeaftersendbytes', 0)
273 276
274 if closeafterrecvbytes or closeaftersendbytes: 277 if closeafterrecvbytes or closeaftersendbytes:
275 socket = socketproxy(socket, self.errorlog, 278 socket = socketproxy(socket, self.errorlog,