So on an attempt from google to subscribe to a user@jabber.mydomain.com account, I get dialback errors - it looks like Wildfire is not using SRV records for the dialback.
I saw a few other (related?) issues in the forums but no solutions. Even though I use @jabber.domain.com I added an srv record pointing back at itself, but that had no effect. (And shouldn’‘t be necessary according to rfc, but I’'m grasping here…)
The server can see the SRV records:
dis@jabber:logs $ host -t srv jabber.tcp.gmail.com
jabber.tcp.gmail.com has SRV record 20 0 5269 xmpp-server1.l.google.com.
jabber.tcp.gmail.com has SRV record 20 0 5269 xmpp-server2.l.google.com.
jabber.tcp.gmail.com has SRV record 20 0 5269 xmpp-server3.l.google.com.
jabber.tcp.gmail.com has SRV record 20 0 5269 xmpp-server4.l.google.com.
jabber.tcp.gmail.com has SRV record 5 0 5269 xmpp-server.l.google.com.
Its Wildfire 2.6.2, Linux x86, java -version reports:
java version “1.5.0_06”
Java™ 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot™ Client VM (build 1.5.0_06-b05, mixed mode, sharing)
And here are the log entries when google requests the subscription:
==> debug.log <==
2006.05.02 08:49:56 Connect Socket[addr=/216.239.36.129,port=17813,localport=5269]
2006.05.02 08:49:56 RS - Received dialback key from host: gmail.com to: jabber.mydomain.com
2006.05.02 08:49:56 RS - Trying to connect to Authoritative Server: gmail.com:5269
==> error.log <==
2006.05.02 08:50:16 org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:161) Connection closed before session established
Socket[addr=/216.239.36.129,port=17813,localport=5269]
==> warn.log <==
2006.05.02 08:50:16 Error verifying key of remote server: gmail.com
java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:507)
at org.jivesoftware.wildfire.server.ServerDialback.verifyKey(ServerDialback.java:5 18)
at org.jivesoftware.wildfire.server.ServerDialback.validateRemoteDomain(ServerDial back.java:455)
at org.jivesoftware.wildfire.server.ServerDialback.createIncomingSession(ServerDia lback.java:338)
at org.jivesoftware.wildfire.server.IncomingServerSession.createSession(IncomingSe rverSession.java:98)
at org.jivesoftware.wildfire.net.ServerSocketReader.createSession(ServerSocketRead er.java:208)
at org.jivesoftware.wildfire.net.SocketReader.createSession(SocketReader.java:607)
at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:110)
at java.lang.Thread.run(Thread.java:595)
Going the other way (wildfire -> google) results in:
2006.05.02 08:56:02 OS - Going to try connecting using server dialback
2006.05.02 08:56:02 OS - Trying to connect to gmail.com:5269
2006.05.02 08:56:22 Error connecting to the remote server: gmail.com(DNS lookup: gmail.com:5269)
java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:507)
at org.jivesoftware.wildfire.server.ServerDialback.createOutgoingSession(ServerDia lback.java:149)
at org.jivesoftware.wildfire.server.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:350)
at org.jivesoftware.wildfire.server.OutgoingServerSession.authenticateDomain(Outgo ingServerSession.java:140)
at org.jivesoftware.wildfire.server.OutgoingSessionPromise.createSessionAndSendPac ket(OutgoingSessionPromise.java:126)
at org.jivesoftware.wildfire.server.OutgoingSessionPromise.access$300(OutgoingSess ionPromise.java:37)
at org.jivesoftware.wildfire.server.OutgoingSessionPromise$1$1.run(OutgoingSession Promise.java:91)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
2006.05.02 08:56:22 Error sending packet to remote server:
java.lang.Exception: Failed to create connection to remote server
at org.jivesoftware.wildfire.server.OutgoingSessionPromise.createSessionAndSendPac ket(OutgoingSessionPromise.java:139)
at org.jivesoftware.wildfire.server.OutgoingSessionPromise.access$300(OutgoingSess ionPromise.java:37)
at org.jivesoftware.wildfire.server.OutgoingSessionPromise$1$1.run(OutgoingSession Promise.java:91)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Help!