diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/eu/siacs/conversations/utils/DNSHelper.java | 13 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java | 2 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/main/java/eu/siacs/conversations/utils/DNSHelper.java b/src/main/java/eu/siacs/conversations/utils/DNSHelper.java index 8c1a8dea..2aa6f573 100644 --- a/src/main/java/eu/siacs/conversations/utils/DNSHelper.java +++ b/src/main/java/eu/siacs/conversations/utils/DNSHelper.java @@ -143,12 +143,21 @@ public class DNSHelper { Bundle namePort = new Bundle(); namePort.putString("name", srv.getName()); namePort.putInt("port", srv.getPort()); + if (ips6.containsKey(srv.getName())) { + ArrayList<String> ip = ips6.get(srv.getName()); + Collections.shuffle(ip, rnd); + namePort.putString("ip", ip.get(0)); + values.add(namePort); + } if (ips4.containsKey(srv.getName())) { ArrayList<String> ip = ips4.get(srv.getName()); Collections.shuffle(ip, rnd); - namePort.putString("ipv4", ip.get(0)); + namePort.putString("ip", ip.get(0)); + values.add(namePort); + } + if (!ips6.containsKey(srv.getName()) && !ips4.containsKey(srv.getName())) { + values.add(namePort); } - values.add(namePort); } bundle.putParcelableArrayList("values", values); } catch (SocketTimeoutException e) { diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java index af0499c6..b090d651 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java @@ -171,7 +171,7 @@ public class XmppConnection implements Runnable { srvRecordServer = ""; } int srvRecordPort = namePort.getInt("port"); - String srvIpServer = namePort.getString("ipv4"); + String srvIpServer = namePort.getString("ip"); InetSocketAddress addr; if (srvIpServer != null) { addr = new InetSocketAddress(srvIpServer, srvRecordPort); |