possible dns fixes

iNPUTmice created

Change summary

src/main/java/eu/siacs/conversations/utils/DNSHelper.java     | 13 ++++
src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java |  2 
2 files changed, 12 insertions(+), 3 deletions(-)

Detailed changes

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) {

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);