Mercurial > public > mercurial-scm > hg-stable
diff mercurial/httppeer.py @ 40019:f80db6adabbe
url: move _wraphttpresponse() from httpeer
This is a generally useful function. Having it on the url module
will make it more accessible outside of the HTTP peers.
Differential Revision: https://phab.mercurial-scm.org/D4770
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 26 Sep 2018 16:07:59 -0700 |
parents | 9c2c77c73f23 |
children | f5a05bb48116 |
line wrap: on
line diff
--- a/mercurial/httppeer.py Wed Sep 26 14:54:15 2018 -0700 +++ b/mercurial/httppeer.py Wed Sep 26 16:07:59 2018 -0700 @@ -69,42 +69,6 @@ return result -def _wraphttpresponse(resp): - """Wrap an HTTPResponse with common error handlers. - - This ensures that any I/O from any consumer raises the appropriate - error and messaging. - """ - origread = resp.read - - class readerproxy(resp.__class__): - def read(self, size=None): - try: - return origread(size) - except httplib.IncompleteRead as e: - # e.expected is an integer if length known or None otherwise. - if e.expected: - got = len(e.partial) - total = e.expected + got - msg = _('HTTP request error (incomplete response; ' - 'expected %d bytes got %d)') % (total, got) - else: - msg = _('HTTP request error (incomplete response)') - - raise error.PeerTransportError( - msg, - hint=_('this may be an intermittent network failure; ' - 'if the error persists, consider contacting the ' - 'network or server operator')) - except httplib.HTTPException as e: - raise error.PeerTransportError( - _('HTTP request error (%s)') % e, - hint=_('this may be an intermittent network failure; ' - 'if the error persists, consider contacting the ' - 'network or server operator')) - - resp.__class__ = readerproxy - class _multifile(object): def __init__(self, *fileobjs): for f in fileobjs: @@ -325,7 +289,7 @@ % (util.timer() - start, code)) # Insert error handlers for common I/O failures. - _wraphttpresponse(res) + urlmod.wrapresponse(res) return res