I did a bit of research on this. I propose the following text
(specifically the parenthetical clause):
The result of the SRV lookup will be one or more combinations of
a port and hostname, which hostnames the initiating entity MUST
resolve according to returned SRV record weight (if the result of
the SRV lookup is a single RR with a Target of ".", i.e. the root
domain, the initiating entity MUST abort SRV processing but
SHOULD attempt a fallback resolution as described below).
Peter Saint-Andre wrote:
> I found this old email in my rfc3920bis folder...
>
> My sense is that we'd keep trying until we exhausted all avenues of
> connection, and I think that's the philosophy behind RFC 3920/3921.
>
> /psa
>
>
> -------- Original Message --------
> Date: Sun, 30 Apr 2006 23:16:57 +1000 (EST)
> From: Bruce Campbell <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Subject: [jdev] How to handle SRV lookups when the root domain is
> referenced
>
>
> In XMPP-IM (rfc3921), the appropriate SRV name to look up for server to
> server connections is '_xmpp-server._tcp.HOST', followed by
> '_im._xmpp.HOST' or '_pres._xmpp.HOST', followed by '_jabber._tcp.HOST'
> (if one wishes compatibility with old records) finally followed by A/AAAA
> lookups for 'HOST'.
>
> In both XMPP-CORE and XMPP-IM, the wording used is 'if the (previous)
> address record resolution fails, (continue with the next resolution)'.
> In DNS terms, 'fails' usually means 'if there was no positive answer'.
>
> Both of these documents also refer to DNS-SRV (rfc2781), which states that
> if the target of the sole (successful) SRV answer is the root domain
> ('.'), then 'abort'.
>
> Since there appear to be two sides of the fence in what to do after
> encountering the DNS-SRV 'abort', I'm interested in knowing what have
> Jabber server implementors done with the following corner case, assuming
> that they want to deliver a <presence/> and initial <message/> to a JID
> @example.com :
>
> _xmpp-server._tcp.example.com. IN SRV 0 0 5269 .
> _im._xmpp.example.com. IN SRC 0 0 5269 imhandler.example.com.
> _pres._xmpp.example.com. IN SRC 0 0 5269 presence.example.com.
> _jabber._tcp.example.com. IN SRV 0 0 5269 jabber.example.com.
> example.com. IN A 192.168.1.1
> jabber.example.com. IN A 192.168.2.2
> imhandler.example.com. IN A 192.168.3.3
> presence.example.com. IN A 192.168.4.4
>
> Since the lookup of _xmpp-server._tcp.example.com is successful, but
> returns just one record with a target of '.', have implementors treated
> this record as:
>
> 'stop attempting to look up an address for "example.com"',
> ( my personal intrepretation )
> or
> 'fallback to looking up "_im._xmpp.example.com." or
> "_pres._xmpp.example.com." as appropriate',
> ( after all, there wasn't anything with an address resulting
> from the first lookup ).
> or
> 'fallback to looking up "_jabber.example.com."'
> ( the "I haven't read XMPP-IM" response ;) )
> or
> 'stop attempting to look up SRV records and fallback to looking
> up A/AAAA for "example.com"'
> ?
>
> Various giggle searches on this topic haven't really answered the
> question, and I'm not really keen on examining source code ;)
>