Bug 4098 - XMPP server DNS resolution should use SRV lookups
: XMPP server DNS resolution should use SRV lookups
Status: CLOSED FIXED
Product: Chat & Call & SMS
XMPP
: 4.1.3 (5.2008.43-7)
: All Maemo
: Low enhancement (vote)
: 5.0-alpha-pre1
Assigned To: rtcomm@maemo.org
: xmpp-bugs
: http://bugzilla.gnome.org/show_bug.cg...
: upstream
:
:
  Show dependency tree
 
Reported: 2009-02-10 21:47 UTC by Lucas Maneos
Modified: 2009-10-19 16:26 UTC (History)
1 user (show)

See Also:


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description Lucas Maneos (reporter) 2009-02-10 21:47:05 UTC
SOFTWARE VERSION:
5.2008.43-7

STEPS TO REPRODUCE THE PROBLEM:
1. Set up an XMPP account to a service on a domain that publishes SRV records,
but the domain has no A records or has A records that do not offer XMPP.
2. Try to connect to the above service.

Example: For a JID like "foo@gmail.com" the currently published servers are:

$ host -t srv _xmpp-client._tcp.gmail.com
_xmpp-client._tcp.gmail.com has SRV record 20 0 5222 talk4.l.google.com.
_xmpp-client._tcp.gmail.com has SRV record 5 0 5222 talk.l.google.com.
_xmpp-client._tcp.gmail.com has SRV record 20 0 5222 talk1.l.google.com.
_xmpp-client._tcp.gmail.com has SRV record 20 0 5222 talk2.l.google.com.
_xmpp-client._tcp.gmail.com has SRV record 20 0 5222 talk3.l.google.com.

and although there are several A records listed for "gmail.com", they don't
listen on the XMPP port.

EXPECTED OUTCOME:
The XMPP client resolves the SRV records of the service and connects
successfully to one of the published servers.

ACTUAL OUTCOME:
The XMPP client naively only queries AAAA & A records of the domain part of the
JID and the connection will fail unless an A record exists and the host it
points to happens to offer XMPP service on the default XMPP port.

REPRODUCIBILITY:
Always.

EXTRA SOFTWARE INSTALLED:
Various packages, but not rtcomm-beta.

OTHER COMMENTS:
A partial workaround is to specify a server and port explicitly in the Advanced
account setup dialog.  This will work as long as that particular server is
reachable and working, but loses all the advantages of the failover
capabilities built into the protocol.

RFC3920 specifies SRV lookups as a SHOULD, however the next version draft
(currently http://xmpp.org/internet-drafts/draft-saintandre-rfc3920bis-08.html)
makes them mandatory.  Setting severity to enhancement for now.

Connections to SIP accounts do SRV (and NAPTR) lookups correctly.

According to http://bugzilla.gnome.org/show_bug.cgi?id=150203 this may be 
already fixed upstream, but the links are dead :-(

User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.0.5)
Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5
Comment 1 Andre Klapper maemo.org 2009-02-11 13:37:07 UTC
"this is fixed as stated by the issue tracker in 1.3 branch for Loudmouth."
according to http://bugzilla.gnome.org/show_bug.cgi?id=150203#c9 .

Nokia ships a recent version for Fremantle (loudmouth 1.4.1, see
http://repository.maemo.org/pool/maemo5.0/free/l/loudmouth/ ) and I trust the
developer comments in GNOME Bugzilla, so I am going to close this as FIXED.
A confirmation is always welcome of course. :-)

By the way, upstream bugtracker is now
http://loudmouth.lighthouseapp.com/projects/17276-libloudmouth/overview
Comment 2 Lucas Maneos (reporter) 2009-10-18 04:56:51 UTC
Verified, with 1.2009.41-10 I can connect without having to specify the server
manually.
Comment 3 Mikhail Zabaluev nokia 2009-10-19 16:26:30 UTC
Closing the verified bugs.