no dns retry after nosrv error
This commit is contained in:
parent
d5e62ffe89
commit
5371dd025a
|
@ -30,17 +30,16 @@ public class DNSHelper {
|
|||
String dns[] = client.findDNS();
|
||||
|
||||
if (dns != null) {
|
||||
// we have a list of DNS servers, let's go
|
||||
for (String dnsserver : dns) {
|
||||
InetAddress ip = InetAddress.getByName(dnsserver);
|
||||
Bundle b = queryDNS(host, ip);
|
||||
if (b.containsKey("name")) {
|
||||
return b;
|
||||
} else if (b.containsKey("error") && "nosrv".equals(b.getString("error", null))) {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// fallback
|
||||
return queryDNS(host, InetAddress.getByName("8.8.8.8"));
|
||||
}
|
||||
|
||||
|
@ -164,10 +163,8 @@ public class DNSHelper {
|
|||
}
|
||||
|
||||
} catch (SocketTimeoutException e) {
|
||||
Log.d(Config.LOGTAG, "timeout during dns");
|
||||
namePort.putString("error", "timeout");
|
||||
} catch (Exception e) {
|
||||
Log.d(Config.LOGTAG, "unhandled exception in sub project");
|
||||
namePort.putString("error", "unhandled");
|
||||
}
|
||||
return namePort;
|
||||
|
|
|
@ -166,8 +166,12 @@ public class XmppConnection implements Runnable {
|
|||
+ ":" + srvRecordPort);
|
||||
socket = new Socket(srvRecordServer, srvRecordPort);
|
||||
}
|
||||
} else {
|
||||
} else if (namePort.containsKey("error") && "nosrv".equals(namePort.getString("error", null))) {
|
||||
socket = new Socket(account.getServer(), 5222);
|
||||
} else {
|
||||
Log.d(Config.LOGTAG,account.getJid()+": timeout in DNS resolution");
|
||||
changeStatus(Account.STATUS_OFFLINE);
|
||||
return;
|
||||
}
|
||||
OutputStream out = socket.getOutputStream();
|
||||
tagWriter.setOutputStream(out);
|
||||
|
|
Loading…
Reference in New Issue