ignore timeout exceptions on secondary dns requests

This commit is contained in:
Daniel Gultsch 2015-09-05 14:26:31 +02:00
parent 7eb228d1a5
commit a32a577e36
1 changed files with 21 additions and 9 deletions

View File

@ -127,13 +127,21 @@ public class DNSHelper {
ArrayList<Bundle> values = new ArrayList<>(); ArrayList<Bundle> values = new ArrayList<>();
if (result.size() == 0) { if (result.size() == 0) {
DNSMessage response; DNSMessage response;
response = client.query(host, TYPE.A, CLASS.IN, dnsServer.getHostAddress()); try {
for(int i = 0; i < response.getAnswers().length; ++i) { response = client.query(host, TYPE.A, CLASS.IN, dnsServer.getHostAddress());
values.add(createNamePortBundle(host,5222,response.getAnswers()[i].getPayload())); for (int i = 0; i < response.getAnswers().length; ++i) {
values.add(createNamePortBundle(host, 5222, response.getAnswers()[i].getPayload()));
}
} catch (SocketTimeoutException e) {
Log.d(Config.LOGTAG,"ignoring timeout exception when querying A record on "+dnsServer.getHostAddress());
} }
response = client.query(host, TYPE.AAAA, CLASS.IN, dnsServer.getHostAddress()); try {
for(int i = 0; i < response.getAnswers().length; ++i) { response = client.query(host, TYPE.AAAA, CLASS.IN, dnsServer.getHostAddress());
values.add(createNamePortBundle(host,5222,response.getAnswers()[i].getPayload())); for (int i = 0; i < response.getAnswers().length; ++i) {
values.add(createNamePortBundle(host, 5222, response.getAnswers()[i].getPayload()));
}
} catch (SocketTimeoutException e) {
Log.d(Config.LOGTAG,"ignoring timeout exception when querying AAAA record on "+dnsServer.getHostAddress());
} }
values.add(createNamePortBundle(host,5222)); values.add(createNamePortBundle(host,5222));
bundle.putParcelableArrayList("values", values); bundle.putParcelableArrayList("values", values);
@ -143,9 +151,13 @@ public class DNSHelper {
if (ips6.containsKey(srv.getName())) { if (ips6.containsKey(srv.getName())) {
values.add(createNamePortBundle(srv.getName(),srv.getPort(),ips6)); values.add(createNamePortBundle(srv.getName(),srv.getPort(),ips6));
} else { } else {
DNSMessage response = client.query(srv.getName(), TYPE.AAAA, CLASS.IN, dnsServer.getHostAddress()); try {
for(int i = 0; i < response.getAnswers().length; ++i) { DNSMessage response = client.query(srv.getName(), TYPE.AAAA, CLASS.IN, dnsServer.getHostAddress());
values.add(createNamePortBundle(srv.getName(),srv.getPort(),response.getAnswers()[i].getPayload())); for (int i = 0; i < response.getAnswers().length; ++i) {
values.add(createNamePortBundle(srv.getName(), srv.getPort(), response.getAnswers()[i].getPayload()));
}
} catch (SocketTimeoutException e) {
Log.d(Config.LOGTAG,"ignoring timeout exception when querying AAAA record on "+dnsServer.getHostAddress());
} }
} }
if (ips4.containsKey(srv.getName())) { if (ips4.containsKey(srv.getName())) {