##// END OF EJS Templates
sslutil: use CA loaded state to drive validation logic...
sslutil: use CA loaded state to drive validation logic Until now, sslkwargs may set web.cacerts=! to indicate that system certs could not be found. This is really obtuse because sslkwargs effectively sets state on a global object which bypasses wrapsocket() and is later consulted by validator.__call__. This is madness. This patch introduces an attribute on the wrapped socket instance indicating whether system CAs were loaded. We can set this directly inside wrapsocket() because that function knows everything that sslkwargs() does - and more. With this attribute set on the socket, we refactor validator.__call__ to use it. Since we no longer have a need for setting web.cacerts=! in sslkwargs, we remove that. I think the new logic is much easier to understand and will enable behavior to be changed more easily.
Gregory Szorc -
r29113:5b9577ed default
Show More
Name Size Modified Last Commit Author
/ mercurial
default.d
help
hgweb
httpclient
pure
templates
__init__.py Loading ...
ancestor.py Loading ...
archival.py Loading ...
base85.c Loading ...
bdiff.c Loading ...
bookmarks.py Loading ...
branchmap.py Loading ...
bundle2.py Loading ...
bundlerepo.py Loading ...
byterange.py Loading ...
changegroup.py Loading ...
changelog.py Loading ...
cmdutil.py Loading ...
commands.py Loading ...
commandserver.py Loading ...
config.py Loading ...
context.py Loading ...
copies.py Loading ...
crecord.py Loading ...
dagparser.py Loading ...
dagutil.py Loading ...
demandimport.py Loading ...
destutil.py Loading ...
diffhelpers.c Loading ...
dirs.c Loading ...
dirstate.py Loading ...
discovery.py Loading ...
dispatch.py Loading ...
dummycert.pem Loading ...
encoding.py Loading ...
error.py Loading ...
exchange.py Loading ...
exewrapper.c Loading ...
extensions.py Loading ...
fancyopts.py Loading ...
filelog.py Loading ...
filemerge.py Loading ...
fileset.py Loading ...
formatter.py Loading ...
graphmod.py Loading ...
hbisect.py Loading ...
help.py Loading ...
hg.py Loading ...
hook.py Loading ...
httpconnection.py Loading ...
httppeer.py Loading ...
i18n.py Loading ...
keepalive.py Loading ...
localrepo.py Loading ...
lock.py Loading ...
lsprof.py Loading ...
lsprofcalltree.py Loading ...
mail.py Loading ...
manifest.c Loading ...
manifest.py Loading ...
match.py Loading ...
mdiff.py Loading ...
merge.py Loading ...
minirst.py Loading ...
mpatch.c Loading ...
namespaces.py Loading ...
node.py Loading ...
obsolete.py Loading ...
osutil.c Loading ...
parser.py Loading ...
parsers.c Loading ...
patch.py Loading ...
pathencode.c Loading ...
pathutil.py Loading ...
peer.py Loading ...
phases.py Loading ...
posix.py Loading ...
progress.py Loading ...
pushkey.py Loading ...
pvec.py Loading ...
py3kcompat.py Loading ...
pycompat.py Loading ...
registrar.py Loading ...
repair.py Loading ...
repoview.py Loading ...
revlog.py Loading ...
revset.py Loading ...
scmposix.py Loading ...
scmutil.py Loading ...
scmwindows.py Loading ...
setdiscovery.py Loading ...
similar.py Loading ...
simplemerge.py Loading ...
sshpeer.py Loading ...
sshserver.py Loading ...
sslutil.py Loading ...
statichttprepo.py Loading ...
store.py Loading ...
streamclone.py Loading ...
strutil.py Loading ...
subrepo.py Loading ...
tagmerge.py Loading ...
tags.py Loading ...
templatefilters.py Loading ...
templatekw.py Loading ...
templater.py Loading ...
transaction.py Loading ...
treediscovery.py Loading ...
ui.py Loading ...
unionrepo.py Loading ...
url.py Loading ...
util.h Loading ...
util.py Loading ...
verify.py Loading ...
win32.py Loading ...
windows.py Loading ...
wireproto.py Loading ...
worker.py Loading ...