XMPP, Connect Server, and SRV

Sebastiaan Deckers cbas at pandion.be
Fri Oct 17 04:55:54 EDT 2008

On Fri, Oct 17, 2008 at 1:59 PM, Mark Doliner <mark at kingant.net> wrote:

> On Thu, Oct 16, 2008 at 9:46 PM, Sebastiaan Deckers <cbas at pandion.be>
> wrote:
> > There is never any case of "SRV lookup on the SRV lookups".
> > Rather the user (eg. j.doe at gmail.com) would specify in the client a hard
> > coded hostname (eg. talk.google.com) for their XMPP server. The client
> then
> > uses SRV resolution on that hardcoded address.
> > This allows the server to distribute client connections across a cluster
> > using SRV weights, even if it can't support SRV on its main DNS address.
> > Without SRV resolution such hard coded address could as not easily be
> load
> > shared across nodes.
> > Of course if the SRV lookup fails on the hard coded address then client
> will
> > continue to a regular name lookup.
> > Am I overlooking some downside to trying SRV lookup on the hard coded
> > address?
> I don't see any major downside, but I also don't think it's a good
> idea.  I think this is a very unnecessary feature, and I think it
> needlessly complicates the code.  I think very few people will benefit
> from this, if any.  Yes it is just one little feature, but you've got
> to draw the line somewhere.  libpurple is pretty large, and I think
> this is something we should consciously chose not to include.

I don't know about the libpurple code base but once SRV lookups have been
implemented (which XMPP Core requires) then couldn't you easily re-use that
code? I don't see how it adds any complexity. In fact there is less
complexity because there's only a single way to look up XMPP hostnames
instead of two different code paths.

Your possible use case is that there might exist a jabber domain with
> so many users that they need to load balance their incoming
> connections, and that whoever is running this huge jabber network is
> unable to create DNS SRV record for their domain, but is somehow able
> to create DNS SRV records for the domain that people user as the
> connect server?  That sounds very contrived to me.

Not as alien as you think it might be. In fact I'm involved in a project
just like.
Imagine a network of people who sign up with their existing email address.
These addresses could be used by the network as XMPP IDs. So a user could
log in with Pandion or Pidgin or any other XMPP client using an ID "
billg at microsoft.com" and set the connect server as "
That cluster could support huge numbers of domains and users which don't yet
have SRV records.

Seems like a valid use case to me, and SRV lookups of the connect server
makes it that much easier to implement.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pidgin.im/pipermail/devel/attachments/20081017/9f82cb5d/attachment.html>

More information about the Devel mailing list