diff -r 8b8a845c85fc -r 6b08cf6b900f mercurial/httppeer.py --- a/mercurial/httppeer.py Tue Apr 10 13:11:40 2018 -0700 +++ b/mercurial/httppeer.py Tue Apr 10 13:07:13 2018 -0700 @@ -620,9 +620,12 @@ return respurl, set(rawcaps.split()) -def makepeer(ui, path, requestbuilder=urlreq.request): +def makepeer(ui, path, opener=None, requestbuilder=urlreq.request): """Construct an appropriate HTTP peer instance. + ``opener`` is an ``url.opener`` that should be used to establish + connections, perform HTTP requests. + ``requestbuilder`` is the type used for constructing HTTP requests. It exists as an argument so extensions can override the default. """ @@ -635,7 +638,7 @@ url, authinfo = u.authinfo() ui.debug('using %s\n' % url) - opener = urlmod.opener(ui, authinfo) + opener = opener or urlmod.opener(ui, authinfo) respurl, caps = performhandshake(ui, url, opener, requestbuilder)