Bug: Server-to-server connections do not work when using IPv6 name-servers

Using Openfire Server 3.7.1 on Debian Squeeze.

Was using “::1” as the system name-server (the IPv6 loopback address). Note that openfire server interpreted that as host “” (blank) and port “:1”. See error stack trace below.

I switched my system name-server to “127.0.0.1” and server-to-server connections began working.

2012.08.13 01:33:48 org.jivesoftware.openfire.session.LocalOutgoingServerSession - Error authenticating domain with remote server: gmail.com

java.lang.NumberFormatException: For input string: “:1”

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.lang.Integer.parseInt(Integer.java:481)

at java.lang.Integer.parseInt(Integer.java:514)

at com.sun.jndi.dns.DnsClient.(DnsClient.java:122)

at com.sun.jndi.dns.Resolver.(Resolver.java:61)

at com.sun.jndi.dns.DnsContext.getResolver(DnsContext.java:570)

at com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:430)

at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContex t.java:231)

at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompos iteDirContext.java:139)

at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompos iteDirContext.java:127)

at javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:1 40)

at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:199)

at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:131)

at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSess ion(LocalOutgoingServerSession.java:269)

at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain (LocalOutgoingServerSession.java:167)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:261)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:238)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:636)