Bug 4098

Summary: XMPP server DNS resolution should use SRV lookups
Product: [Maemo Official Applications] Chat & Call & SMS Reporter: Lucas Maneos <maemo>
Component: XMPPAssignee: rtcomm <rtcomm>
Status: CLOSED FIXED QA Contact: xmpp-bugs
Severity: enhancement    
Priority: Low CC: andre_klapper
Version: 4.1.3 (5.2008.43-7)Keywords: upstream
Target Milestone: 5.0-alpha-pre1   
Hardware: All   
OS: Maemo   
URL: http://bugzilla.gnome.org/show_bug.cgi?id=150203#c9

Description Lucas Maneos (reporter) 2009-02-10 21:47:05 UTC

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.

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

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.


Various packages, but not rtcomm-beta.

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:
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
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
Comment 3 Mikhail Zabaluev nokia 2009-10-19 16:26:30 UTC
Closing the verified bugs.