more patches for dns helper

This commit is contained in:
iNPUTmice 2014-12-14 19:02:29 +01:00
parent 50410dad33
commit 5cbae25808
1 changed files with 19 additions and 13 deletions

View File

@ -140,23 +140,17 @@ public class DNSHelper {
}
ArrayList<Bundle> values = new ArrayList<>();
for (SRV srv : result) {
Bundle namePort = new Bundle();
namePort.putString("name", srv.getName());
namePort.putInt("port", srv.getPort());
boolean added = false;
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);
values.add(createNamePortBundle(srv.getName(),srv.getPort(),ips6));
added = true;
}
if (ips4.containsKey(srv.getName())) {
ArrayList<String> ip = ips4.get(srv.getName());
Collections.shuffle(ip, rnd);
namePort.putString("ip", ip.get(0));
values.add(namePort);
values.add(createNamePortBundle(srv.getName(),srv.getPort(),ips4));
added = true;
}
if (!ips6.containsKey(srv.getName()) && !ips4.containsKey(srv.getName())) {
values.add(namePort);
if (!added) {
values.add(createNamePortBundle(srv.getName(),srv.getPort(),null));
}
}
bundle.putParcelableArrayList("values", values);
@ -168,6 +162,18 @@ public class DNSHelper {
return bundle;
}
private static Bundle createNamePortBundle(String name, int port, TreeMap<String, ArrayList<String>> ips) {
Bundle namePort = new Bundle();
namePort.putString("name", name);
namePort.putInt("port", port);
if (ips!=null) {
ArrayList<String> ip = ips.get(name);
Collections.shuffle(ip, new Random());
namePort.putString("ip", ip.get(0));
}
return namePort;
}
final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
public static String bytesToHex(byte[] bytes) {