Disco#info queries aren't coming back - could it be the server?

When I dusted off an old XMPP uptime checking bot I wrote a while back, I discovered that none of the services it was using were up. This was surprising to me, so I had a bit of a closer look, and indeed it seems that no matter where I send my disco#info queries – as long as it isn’t to the openfire server itself – I get no reply at all.

I tested this with a server I knew was responding to disco#info when hit locally, as well as with a couple of other servers at random. Doing a test against the server itself confirms that replies are coming back, i.e. I’m not doing anything obviously wrong (though I might be doing something subtly wrong… let’s see.)

Logs as seen from the client:

D, [2009-09-30T22:22:03.725667 #5879] DEBUG – : SENDING:

<iq id='3533' to='trypticon.org' type='get' xmlns='jabber:client'><query xmlns='[http://jabber.org/protocol/disco#info'/](http://jabber.org/protocol/disco#info'/)></iq>

D, [2009-09-30T22:22:03.794280 #5879] DEBUG – : RECEIVED:

 <iq from='trypticon.org' id='3533' to='trejkaz@trypticon.org/upcheck' type='result'><query xmlns='[http://jabber.org/protocol/disco#info](http://jabber.org/protocol/disco#info)'><identity name='Openfire Server' category='server' type='im'/> [TRUNCATING] </query></q>

Local Server: UP

D, [2009-09-30T22:22:03.813168 #5879] DEBUG – : SENDING:

<iq id='4279' to='gmail.com' type='get' xmlns='jabber:client'><query xmlns='[http://jabber.org/protocol/disco#info'/](http://jabber.org/protocol/disco#info'/)></iq>

Gmail: TIMED OUT

D, [2009-09-30T22:22:23.814435 #5879] DEBUG – : SENDING:

<iq id='5412' to='chatmask.com' type='get' xmlns='jabber:client'><query xmlns='[http://jabber.org/protocol/disco#info'/](http://jabber.org/protocol/disco#info'/)></iq>

Chatmask: TIMED OUT

D, [2009-09-30T22:22:43.815883 #5879] DEBUG – : SENDING:

<iq id='6551' to='jabber.org' type='get' xmlns='jabber:client'><query xmlns='[http://jabber.org/protocol/disco#info'/](http://jabber.org/protocol/disco#info'/)></iq>

Jabber.org: TIMED OUT

D, [2009-09-30T22:23:03.816875 #5879] DEBUG – : SENDING:

<iq id='7646' to='jabber.org.au' type='get' xmlns='jabber:client'><query xmlns='[http://jabber.org/protocol/disco#info'/](http://jabber.org/protocol/disco#info'/)></iq>

Jabber Australia: TIMED OUT

Even if Openfire were having some kind of problem handling the request, I would have expected an error to be returned, but it wasn’t.

Looking in the Openfire console confirms that the connections to these servers is actually made. There is nothing recent in the logs.