# HG changeset patch # User liscju <piotr.listkiewicz@gmail.com> # Date 2016-06-09 09:41:36 # Node ID fea71f66ebff0f7fe487cf731da0549efea9374b # Parent 2c019aac6b995eedabbaca66b04a8813b0fb4124 url: remember http password database in ui object This makes http password database stored in ui object. It allows reusing authentication information when we use this database for creating password manager for the new connection. diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -29,6 +29,8 @@ from . import ( util, ) +urlreq = util.urlreq + samplehgrcs = { 'user': """# example user config (see "hg help config" for more info) @@ -124,6 +126,8 @@ class ui(object): self.callhooks = src.callhooks self.insecureconnections = src.insecureconnections self.fixconfig() + + self.httppasswordmgrdb = src.httppasswordmgrdb else: self.fout = sys.stdout self.ferr = sys.stderr @@ -135,6 +139,8 @@ class ui(object): for f in scmutil.rcpath(): self.readconfig(f, trust=True) + self.httppasswordmgrdb = urlreq.httppasswordmgrwithdefaultrealm() + def copy(self): return self.__class__(self) @@ -142,6 +148,7 @@ class ui(object): """Clear internal state that shouldn't persist across commands""" if self._progbar: self._progbar.resetstate() # reset last-print time of progress bar + self.httppasswordmgrdb = urlreq.httppasswordmgrwithdefaultrealm() def formatter(self, topic, opts): return formatter.formatter(self, topic, opts) diff --git a/mercurial/url.py b/mercurial/url.py --- a/mercurial/url.py +++ b/mercurial/url.py @@ -365,7 +365,7 @@ if has_https: urlreq.httpshandler.__init__(self) self.ui = ui self.pwmgr = passwordmgr(self.ui, - urlreq.httppasswordmgrwithdefaultrealm()) + self.ui.httppasswordmgrdb) def _start_transaction(self, h, req): _generic_start_transaction(self, h, req) @@ -482,7 +482,7 @@ def opener(ui, authinfo=None): handlers = [ httpconnectionmod.http2handler( ui, - passwordmgr(ui, urlreq.httppasswordmgrwithdefaultrealm())) + passwordmgr(ui, ui.httppasswordmgrdb)) ] else: handlers = [httphandler()] @@ -491,7 +491,7 @@ def opener(ui, authinfo=None): handlers.append(proxyhandler(ui)) - passmgr = passwordmgr(ui, urlreq.httppasswordmgrwithdefaultrealm()) + passmgr = passwordmgr(ui, ui.httppasswordmgrdb) if authinfo is not None: passmgr.add_password(*authinfo) user, passwd = authinfo[2:4]