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 ;)

--
  Bruce Campbell.

Reply via email to