handle correltly SRV and registration on IDN servers. fixes #2898
This commit is contained in:
parent
37bd1142f9
commit
abcb9a35f1
|
@ -350,7 +350,7 @@ class Connection(ConnectionHandlers):
|
|||
self._hostname = hostname
|
||||
if use_srv:
|
||||
# add request for srv query to the resolve, on result '_on_resolve' will be called
|
||||
gajim.resolver.resolve('_xmpp-client._tcp.' + h.encode('utf-8'), self._on_resolve)
|
||||
gajim.resolver.resolve('_xmpp-client._tcp.' + helpers.unicode_to_ACE(h), self._on_resolve)
|
||||
else:
|
||||
self._on_resolve('', [])
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ import errno
|
|||
import select
|
||||
import sha
|
||||
from encodings.punycode import punycode_encode
|
||||
from encodings import idna
|
||||
|
||||
import gajim
|
||||
from i18n import Q_
|
||||
|
@ -85,6 +86,14 @@ def parse_jid(jidstring):
|
|||
|
||||
return prep(*decompose_jid(jidstring))
|
||||
|
||||
def unicode_to_ACE(host):
|
||||
'''convert IDN (Internationalized Domain Names) to ACE (ASCII-compatible encoding)'''
|
||||
labels = idna.dots.split(host)
|
||||
converted_labels = []
|
||||
for label in labels:
|
||||
converted_labels.append(idna.ToASCII(label))
|
||||
return ".".join(converted_labels)
|
||||
|
||||
def parse_resource(resource):
|
||||
'''Perform stringprep on resource and return it'''
|
||||
if resource:
|
||||
|
|
|
@ -2991,9 +2991,9 @@ class AccountCreationWizardWindow:
|
|||
'.')
|
||||
dialogs.ErrorDialog(pritext, sectext)
|
||||
return
|
||||
server = widgets['server_comboboxentry'].child.get_text()
|
||||
server = widgets['server_comboboxentry'].child.get_text().decode('utf-8')
|
||||
savepass = widgets['save_password_checkbutton'].get_active()
|
||||
password = widgets['pass1_entry'].get_text()
|
||||
password = widgets['pass1_entry'].get_text().decode('utf-8')
|
||||
|
||||
if not self.modify:
|
||||
if password == '':
|
||||
|
|
Loading…
Reference in New Issue