idna validation failed on seemingly valid domain
Poezio version: 47069606
Slixmpp version: slixmpp@05d76e4b
I wanted to play a bit and test with the following diff "removing" safeJID:
diff --git a/poezio/common.py b/poezio/common.py
index 3a865054..d7bbbfdc 100644
--- a/poezio/common.py
+++ b/poezio/common.py
@@ -456,7 +456,4 @@ def safeJID(*args, **kwargs) -> JID:
Used to avoid tracebacks during is stringprep fails
(fall back to a JID with an empty string).
"""
- try:
- return JID(*args, **kwargs)
- except InvalidJID:
- return JID('')
+ return JID(*args, **kwargs)
The following idna error happened when joining foobar@chat.cluxia.eu
. Not entirely sure how to reproduce, and I'm having difficulties tracking it down.
2019-02-28 00:12:51,905 DEBUG:xmlstream:SEND: <presence to="foobar@chat.cluxia.eu/pep_" xml:lang="en"><x xmlns="http://jabber.org/protocol/muc"><history seconds="6337524" /></x><c xmlns="http://jabber.org/protocol/caps" node="https://poez.io" hash="sha-1" ver="ShLc8Sd+awa9
Jgf6zhgZv4xI9pQ=" /><x xmlns="vcard-temp:x:update"><photo>bc59cfde8c748d222d643c1b2171af95ed1c9d6e</photo></x><idle xmlns="urn:xmpp:idle:1" since="2019-02-28T00:12:51.513142+00:00" /></presence>
2019-02-28 00:12:51,905 DEBUG:muctab: TAB Refresh: MucTab
2019-02-28 00:12:51,905 DEBUG:muc:Refresh: Topic
2019-02-28 00:12:51,906 DEBUG:text_win:Refresh: TextWin
2019-02-28 00:12:51,906 DEBUG:info_wins:Refresh: MucInfoWin
2019-02-28 00:12:51,906 DEBUG:info_bar:Refresh: GlobalInfoBar
2019-02-28 00:12:51,907 DEBUG:text_win:Refresh: TextWin
2019-02-28 00:12:51,907 DEBUG:inputs:Refresh: MessageInput
2019-02-28 00:12:52,447 DEBUG:xmlstream:RECV: <presence xml:lang="en" from="foobar@chat.cluxia.eu/pep_" to="test@bouah.net/poezio-yUfy"><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" ver="ShLc8Sd+awa9Jgf6zhgZv4xI9pQ=" node="https://poez.io" /><idle xmlns="urn:xmpp
:idle:1" since="2019-02-28T00:12:51.513142+00:00" /><x xmlns="vcard-temp:x:update"><photo>bc59cfde8c748d222d643c1b2171af95ed1c9d6e</photo></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test@bouah.net/poezio-yUfy" affiliation="none" role="participant" /><stat
us code="110" /></x></presence>
2019-02-28 00:12:52,449 DEBUG:xmlstream:Event triggered: presence
2019-02-28 00:12:52,450 DEBUG:xmlstream:Event triggered: presence_available
2019-02-28 00:12:52,450 DEBUG:xmlstream:Event triggered: got_online
2019-02-28 00:12:52,451 DEBUG:xmlstream:Event triggered: changed_status
2019-02-28 00:12:52,452 DEBUG:xmlstream:Event triggered: entity_caps
2019-02-28 00:12:52,452 DEBUG:xep_0045:MUC presence from foobar@chat.cluxia.eu/pep_ : OrderedDict([('lang', 'en'), ('jid', 'test@bouah.net/poezio-yUfy'), ('affiliation', 'none'), ('room', 'foobar@chat.cluxia.eu'), ('role', 'participant'), ('nick', 'pep_'), ('show', ''), ('
status', ''), ('alt_nick', <nick xmlns="http://jabber.org/protocol/nick" />)])
2019-02-28 00:12:52,452 DEBUG:xmlstream:Event triggered: groupchat_presence
2019-02-28 00:12:52,454 DEBUG:xmlstream:SEND: <presence xml:lang="en" to="foobar@chat.cluxia.eu/pep_" type="error"><error type="cancel"><undefined-condition xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Slixmpp got into tro
uble.</text></error><idle xmlns="urn:xmpp:idle:1" since="2019-02-28T00:12:51.907475+00:00" /></presence>
2019-02-28 00:12:52,454 ERROR:rootstanza:Error handling {jabber:client}presence stanza
Traceback (most recent call last):
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 135, in _validate_domain
domain = idna(domain)
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/stringprep.py", line 99, in idna
raise StringprepError
slixmpp.stringprep.StringprepError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/xmlstream/xmlstream.py", line 796, in event
handler_callback(data)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/core/handlers.py", line 1146, in on_groupchat_presence
tab.handle_presence(presence)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 452, in handle_presence
self.process_presence_buffer(presence)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 482, in process_presence_buffer
self.handle_presence_unjoined(last_presence, deterministic, own=True)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 500, in handle_presence_unjoined
user_color = self.search_for_color(from_nick)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 1167, in search_for_color
color = config.get_by_tabname(nick, 'muc_colors')
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/config.py", line 234, in get_by_tabname
return self.get_by_servname(tabname, option, default, fallback)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/config.py", line 244, in get_by_servname
server = safeJID(jid).server
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/common.py", line 459, in safeJID
return JID(*args, **kwargs)
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 313, in __init__
self._node, self._domain, self._resource = _parse_jid(jid)
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 68, in _parse_jid
domain = _validate_domain(domain)
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 137, in _validate_domain
raise InvalidJID('idna validation failed')
slixmpp.jid.InvalidJID: idna validation failed
2019-02-28 00:12:52,460 ERROR:basexmpp:idna validation failed
Traceback (most recent call last):
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 135, in _validate_domain
domain = idna(domain)
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/stringprep.py", line 99, in idna
raise StringprepError
slixmpp.stringprep.StringprepError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/xmlstream/xmlstream.py", line 796, in event
handler_callback(data)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/core/handlers.py", line 1146, in on_groupchat_presence
tab.handle_presence(presence)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 452, in handle_presence
self.process_presence_buffer(presence)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 482, in process_presence_buffer
self.handle_presence_unjoined(last_presence, deterministic, own=True)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 500, in handle_presence_unjoined
user_color = self.search_for_color(from_nick)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 1167, in search_for_color
color = config.get_by_tabname(nick, 'muc_colors')
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/config.py", line 234, in get_by_tabname
return self.get_by_servname(tabname, option, default, fallback)
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/config.py", line 244, in get_by_servname
server = safeJID(jid).server
File "/home/ppjet/Src/poezio/safeJID-removal/poezio/common.py", line 459, in safeJID
return JID(*args, **kwargs)
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 313, in __init__
self._node, self._domain, self._resource = _parse_jid(jid)
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 68, in _parse_jid
domain = _validate_domain(domain)
File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 137, in _validate_domain
raise InvalidJID('idna validation failed')
slixmpp.jid.InvalidJID: idna validation failed
2019-02-28 00:12:52,461 DEBUG:xmlstream:Event triggered: muc::foobar@chat.cluxia.eu::presence
2019-02-28 00:12:52,461 DEBUG:xmlstream:Event triggered: muc::foobar@chat.cluxia.eu::got_online
To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information