no dns retry after nosrv error

This commit is contained in:
iNPUTmice 2014-10-04 14:33:14 +02:00
parent d5e62ffe89
commit 5371dd025a
2 changed files with 7 additions and 6 deletions

View File

@ -30,17 +30,16 @@ public class DNSHelper {
String dns[] = client.findDNS(); String dns[] = client.findDNS();
if (dns != null) { if (dns != null) {
// we have a list of DNS servers, let's go
for (String dnsserver : dns) { for (String dnsserver : dns) {
InetAddress ip = InetAddress.getByName(dnsserver); InetAddress ip = InetAddress.getByName(dnsserver);
Bundle b = queryDNS(host, ip); Bundle b = queryDNS(host, ip);
if (b.containsKey("name")) { if (b.containsKey("name")) {
return b; 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")); return queryDNS(host, InetAddress.getByName("8.8.8.8"));
} }
@ -164,10 +163,8 @@ public class DNSHelper {
} }
} catch (SocketTimeoutException e) { } catch (SocketTimeoutException e) {
Log.d(Config.LOGTAG, "timeout during dns");
namePort.putString("error", "timeout"); namePort.putString("error", "timeout");
} catch (Exception e) { } catch (Exception e) {
Log.d(Config.LOGTAG, "unhandled exception in sub project");
namePort.putString("error", "unhandled"); namePort.putString("error", "unhandled");
} }
return namePort; return namePort;

View File

@ -166,8 +166,12 @@ public class XmppConnection implements Runnable {
+ ":" + srvRecordPort); + ":" + srvRecordPort);
socket = new Socket(srvRecordServer, srvRecordPort); socket = new Socket(srvRecordServer, srvRecordPort);
} }
} else { } else if (namePort.containsKey("error") && "nosrv".equals(namePort.getString("error", null))) {
socket = new Socket(account.getServer(), 5222); 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(); OutputStream out = socket.getOutputStream();
tagWriter.setOutputStream(out); tagWriter.setOutputStream(out);