handle correltly SRV and registration on IDN servers. fixes #2898

This commit is contained in:
Yann Leboulanger 2007-01-16 22:36:41 +00:00
parent 37bd1142f9
commit abcb9a35f1
3 changed files with 12 additions and 3 deletions

View File

@ -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('', [])

View File

@ -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:

View File

@ -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 == '':