https: use web.cacerts configuration from local repo to validate remote repo

This commit is contained in:
Mads Kiilerich 2010-12-27 17:49:58 +01:00
parent 8562094eb1
commit d9f11887ef
2 changed files with 23 additions and 4 deletions

View File

@ -545,9 +545,12 @@ def remoteui(src, opts):
if r:
dst.setconfig('bundle', 'mainreporoot', r)
# copy auth and http_proxy section settings
# copy selected local settings to the remote ui
for sect in ('auth', 'http_proxy'):
for key, val in src.configitems(sect):
dst.setconfig(sect, key, val)
v = src.config('web', 'cacerts')
if v:
dst.setconfig('web', 'cacerts', v)
return dst

View File

@ -126,7 +126,7 @@ clone via pull
adding bar
$ cd ..
pull
pull without cacert
$ cd copy-pull
$ echo '[hooks]' >> .hg/hgrc
@ -143,12 +143,28 @@ pull
(run 'hg update' to get a working copy)
$ cd ..
cacert
cacert configured in local repo
$ hg -R copy-pull pull --config web.cacerts=pub.pem
$ cp copy-pull/.hg/hgrc copy-pull/.hg/hgrc.bu
$ echo "[web]" >> copy-pull/.hg/hgrc
$ echo "cacerts=`pwd`/pub.pem" >> copy-pull/.hg/hgrc
$ hg -R copy-pull pull --traceback
pulling from https://localhost:$HGPORT/
searching for changes
no changes found
$ mv copy-pull/.hg/hgrc.bu copy-pull/.hg/hgrc
cacert configured globally
$ echo "[web]" >> $HGRCPATH
$ echo "cacerts=`pwd`/pub.pem" >> $HGRCPATH
$ hg -R copy-pull pull
pulling from https://localhost:$HGPORT/
searching for changes
no changes found
cacert mismatch
$ hg -R copy-pull pull --config web.cacerts=pub.pem https://127.0.0.1:$HGPORT/
abort: 127.0.0.1 certificate error: certificate is for localhost
[255]