[PATCH 2 of 3 V2] url: remember http password database in ui object
liscju
piotr.listkiewicz at gmail.com
Mon Jun 20 05:18:44 EDT 2016
# HG changeset patch
# User liscju <piotr.listkiewicz at gmail.com>
# Date 1465465296 -7200
# Thu Jun 09 11:41:36 2016 +0200
# Node ID b733bab6a48a5d73a51e0f040fe3c04f6a9f0011
# Parent 18ec6f7cbaf9b3c2ff598fbff8b027ba682d0fe8
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]
More information about the Mercurial-devel
mailing list