##// END OF EJS Templates
sslutil: synchronize hostname matching logic with CPython...
sslutil: synchronize hostname matching logic with CPython sslutil contains its own hostname matching logic. CPython has code for the same intent. However, it is only available to Python 2.7.9+ (or distributions that have backported 2.7.9's ssl module improvements). This patch effectively imports CPython's hostname matching code from its ssl.py into sslutil.py. The hostname matching code itself is pretty similar. However, the DNS name matching code is much more robust and spec conformant. As the test changes show, this changes some behavior around wildcard handling and IDNA matching. The new behavior allows wildcards in the middle of words (e.g. 'f*.com' matches 'foo.com') This is spec compliant according to RFC 6125 Section 6.5.3 item 3. There is one test where the matcher is more strict. Before, '*.a.com' matched '.a.com'. Now it doesn't match. Strictly speaking this is a security vulnerability.

File last commit:

r27982:bf1d5c22 default
r29452:26a5d605 3.8.4 stable
Show More
test-schemes.t
74 lines | 1.4 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: replace exit 80 with #require
r22046 #require serve
Matt Mackall
tests: unify test-schemes
r12486
$ cat <<EOF >> $HGRCPATH
> [extensions]
> schemes=
>
> [schemes]
> l = http://localhost:$HGPORT/
> parts = http://{1}:$HGPORT/
> z = file:\$PWD/
> EOF
$ hg init test
$ cd test
$ echo a > a
$ hg ci -Am initial
adding a
Mads Kiilerich
scheme: don't crash on invalid URLs
r18910
invalid scheme
$ hg log -R z:z
abort: no '://' in scheme url 'z:z'
[255]
http scheme
Matt Mackall
tests: unify test-schemes
r12486 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
$ hg incoming l://
comparing with l://
searching for changes
no changes found
[1]
check that {1} syntax works
$ hg incoming --debug parts://localhost
Mads Kiilerich
tests: reintroduce ":$HGPORT" in test output...
r12643 using http://localhost:$HGPORT/
Peter Arrenbrecht
httprepo: use caps instead of between for compat check...
r13603 sending capabilities command
Brodie Rao
url: add trailing slashes to URLs with hostnames that don't have one...
r13815 comparing with parts://localhost/
Peter Arrenbrecht
discovery: add new set-based discovery...
r14164 query 1; heads
Peter Arrenbrecht
setdiscovery: batch heads and known(ownheads)...
r14624 sending batch command
Matt Mackall
tests: unify test-schemes
r12486 searching for changes
Peter Arrenbrecht
discovery: add new set-based discovery...
r14164 all remote heads known locally
Matt Mackall
tests: unify test-schemes
r12486 no changes found
[1]
check that paths are expanded
$ PWD=`pwd` hg incoming z://
comparing with z://
searching for changes
no changes found
[1]
Jason R. Coombs
schemes: add debugexpandscheme command, resolving a scheme to canonical form
r27982 check that debugexpandscheme outputs the canonical form
$ hg debugexpandscheme bb://user/repo
https://bitbucket.org/user/repo
expanding an unknown scheme emits the input
$ hg debugexpandscheme foobar://this/that
foobar://this/that
expanding a canonical URL emits the input
$ hg debugexpandscheme https://bitbucket.org/user/repo
https://bitbucket.org/user/repo
Matt Mackall
tests: unify test-schemes
r12486 errors
$ cat errors.log
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..