diff options
author | mathieui <mathieui@mathieui.net> | 2015-08-23 17:14:53 +0200 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2015-08-23 17:14:53 +0200 |
commit | 804b23d390fe5733f4f2cbd1b588fbc9b7c42e21 (patch) | |
tree | de208053ef66ad1650f650e888b836d49915603e /slixmpp/stringprep.py | |
parent | 6e61adf3dba6945423bb4b8812c8ed0107274f50 (diff) | |
parent | 04eaf52b1d919e06f2a3c60ab63d625bc5d0797f (diff) | |
download | slixmpp-804b23d390fe5733f4f2cbd1b588fbc9b7c42e21.tar.gz slixmpp-804b23d390fe5733f4f2cbd1b588fbc9b7c42e21.tar.bz2 slixmpp-804b23d390fe5733f4f2cbd1b588fbc9b7c42e21.tar.xz slixmpp-804b23d390fe5733f4f2cbd1b588fbc9b7c42e21.zip |
Merge branch 'socks5' of http://git.linkmauve.fr/slixmpp
Diffstat (limited to 'slixmpp/stringprep.py')
-rw-r--r-- | slixmpp/stringprep.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/slixmpp/stringprep.py b/slixmpp/stringprep.py index e0757ef2..99506d78 100644 --- a/slixmpp/stringprep.py +++ b/slixmpp/stringprep.py @@ -101,5 +101,21 @@ def idna(domain): domain_parts.append(label) return '.'.join(domain_parts) +def punycode(domain): + domain_parts = [] + for label in domain.split('.'): + try: + label = encodings.idna.nameprep(label) + encodings.idna.ToASCII(label) + except UnicodeError: + raise StringprepError + + for char in label: + if char in ILLEGAL_CHARS: + raise StringprepError + + domain_parts.append(label) + return b'.'.join(domain_parts) + logging.getLogger(__name__).warning('Using slower stringprep, consider ' 'compiling the faster cython/libidn one.') |