aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/eu/siacs/conversations/utils/DNSHelper.java13
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java2
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 8c1a8dea3..2aa6f5738 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 af0499c64..b090d651a 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);