Server with IDN

In which form should I enter the domain name in the xmpp.domain value?

If I set up corresponding SRV records, should I expect Spark to be able to connect to the server and authenticate if I enter the JID in unicode format or do I have to enter the encoded version?

Hi,

it seems that Wildfire has a problem with IDN as xmpp.domain if you enter it normally and not punycode.

Actually it tries to create a s2s-connection to a server with the same xmpp.domain using the punycode encoded URL and this is really silly.

So “würger.de.de” as xmpp.domain causes trouble while würger.de.de works fine, then Spark can connect using “würger.de.de” as the server name.

LG

for further reference / JM-894 - the debug.log:

2006.11.12 14:40:38 Error sending packet to remote server: <iq type="error" id="h6Gj2-2" to="xn--wrger-kva.de.de/f777485b">
  <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
    <resource>Spark</resource>
  </bind>
  <error code="500" type="wait">
    <internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></internal-server-error>
  </error>
</iq>
java.lang.NullPointerException
     at org.jivesoftware.wildfire.server.OutgoingSessionPromise.createSessionAndSendPacket(OutgoingSessionPromise.java:131)
     at org.jivesoftware.wildfire.server.OutgoingSessionPromise.access$3(OutgoingSessionPromise.java:128)
     at org.jivesoftware.wildfire.server.OutgoingSessionPromise$1$1.run(OutgoingSessionPromise.java:95)
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
     at java.lang.Thread.run(Thread.java:595)

IDNs are a user interface issue, not on the server. You should use the punycode-version there.

it2000 wrote:

So “würger.de.de” as xmpp.domain causes trouble while würger.de.de works fine, then Spark can connect using “würger.de.de” as the server name.

I guess this is a Spark issue then, atleast partly because Spark (I’‘ve tried windows and linux, both 2.0.5) can’‘t seem to connect unless I manually specify the server. And Spark still lists the account with the punycoded domain in the tooltip. So two problems, Spark can’‘t connect and doesn’'t show the domain name the right way to the user.

Which version should Wildfire send as realm in the challenge part of the Digest-MD5 authentiction? Currently, it sends the punycoded version as that is what I have entered as xmpp.domain.

I’‘d expect the Digest MD5 spec to specify ASCII encoding (if they even explicitly state that), so you’'d need punycode there.

I’'ve configured my server to use the punycoded string in xmpp.domain. When I try to disco this server through another account (also by Wildfire), then the client sends

<iq type="get" to="råkat.se" id="ac91a" >
<query xmlns="http://jabber.org/protocol/disco#info"></query>
</iq> <iq type="get" to="råkat.se" id="ac92a" >
<query xmlns="http://jabber.org/protocol/disco#items"></query>
</iq>

The results come back from

<iq from="xn--rkat-qoa.se" [...]>
[...]

Is that the right thing to do?

Anyone have any idea on what the proper thing to do is, and if Wildfire does it?