##// 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:

r17192:1ac628cd default
r29452:26a5d605 3.8.4 stable
Show More
notcapable
24 lines | 806 B | text/plain | TextLexer
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 # Disable the $CAP wire protocol capability.
if test -z "$CAP"
then
echo "CAP environment variable not set."
fi
cat > notcapable-$CAP.py << EOF
Peter Arrenbrecht
peer: introduce real peer classes...
r17192 from mercurial import extensions, peer, localrepo
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 def extsetup():
Peter Arrenbrecht
peer: introduce real peer classes...
r17192 extensions.wrapfunction(peer.peerrepository, 'capable', wrapcapable)
extensions.wrapfunction(localrepo.localrepository, 'peer', wrappeer)
def wrapcapable(orig, self, name, *args, **kwargs):
Peter Arrenbrecht
tests: support multiple caps in notcapable
r14409 if name in '$CAP'.split(' '):
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 return False
return orig(self, name, *args, **kwargs)
Peter Arrenbrecht
peer: introduce real peer classes...
r17192 def wrappeer(orig, self):
# Since we're disabling some newer features, we need to make sure local
# repos add in the legacy features again.
return localrepo.locallegacypeer(self)
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 EOF
echo '[extensions]' >> $HGRCPATH
echo "notcapable-$CAP = `pwd`/notcapable-$CAP.py" >> $HGRCPATH