Mercurial > hg
changeset 37550:b5862ee01abe
httppeer: move error handling and response wrapping into sendrequest
This is common for all HTTP requests. It should be part of
sendrequest().
Differential Revision: https://phab.mercurial-scm.org/D3235
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Tue, 10 Apr 2018 12:12:07 -0700 |
parents | 66d1001e1500 |
children | 946eb204ba67 |
files | mercurial/httppeer.py |
diffstat | 1 files changed, 19 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/httppeer.py Tue Apr 10 10:51:12 2018 -0700 +++ b/mercurial/httppeer.py Tue Apr 10 12:12:07 2018 -0700 @@ -284,10 +284,24 @@ start = util.timer() - res = opener.open(req) - if ui.configbool('devel', 'debug.peer-request'): - dbg(line % ' finished in %.4f seconds (%s)' - % (util.timer() - start, res.code)) + try: + res = opener.open(req) + except urlerr.httperror as inst: + if inst.code == 401: + raise error.Abort(_('authorization failed')) + raise + except httplib.HTTPException as inst: + ui.debug('http error requesting %s\n' % + util.hidepassword(req.get_full_url())) + ui.traceback() + raise IOError(None, inst) + finally: + if ui.configbool('devel', 'debug.peer-request'): + dbg(line % ' finished in %.4f seconds (%s)' + % (util.timer() - start, res.code)) + + # Insert error handlers for common I/O failures. + _wraphttpresponse(res) return res @@ -346,19 +360,7 @@ self._caps, self.capable, self._url, cmd, args) - try: - resp = sendrequest(self.ui, self._urlopener, req) - except urlerr.httperror as inst: - if inst.code == 401: - raise error.Abort(_('authorization failed')) - raise - except httplib.HTTPException as inst: - self.ui.debug('http error while sending %s command\n' % cmd) - self.ui.traceback() - raise IOError(None, inst) - - # Insert error handlers for common I/O failures. - _wraphttpresponse(resp) + resp = sendrequest(self.ui, self._urlopener, req) # record the url we got redirected to resp_url = pycompat.bytesurl(resp.geturl())