diff options
author | Daniel Gultsch <daniel.gultsch@rwth-aachen.de> | 2014-03-28 19:00:01 +0100 |
---|---|---|
committer | Daniel Gultsch <daniel.gultsch@rwth-aachen.de> | 2014-03-28 19:00:01 +0100 |
commit | 38efb84690f5ed46ad34b0a5cb27e63da73394bd (patch) | |
tree | 75cf499bf309bf557e1db5926b0238da0e0170e2 /src | |
parent | 268eae78136a2ef2c2fe53aee4f003ffa6bf9a89 (diff) |
treat dns timeouts as temporary. also increased timeout
Diffstat (limited to 'src')
-rw-r--r-- | src/eu/siacs/conversations/utils/DNSHelper.java | 6 | ||||
-rw-r--r-- | src/eu/siacs/conversations/xmpp/XmppConnection.java | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/eu/siacs/conversations/utils/DNSHelper.java b/src/eu/siacs/conversations/utils/DNSHelper.java index dbdd2648..3197acb1 100644 --- a/src/eu/siacs/conversations/utils/DNSHelper.java +++ b/src/eu/siacs/conversations/utils/DNSHelper.java @@ -31,7 +31,7 @@ public class DNSHelper { ip = InetAddress.getByName(value); servers.add(value); Bundle result = queryDNS(host, ip); - if (!result.containsKey("error")) { + if (!result.containsKey("error")||("nosrv".equals(result.getString("error")))) { return result; } } @@ -80,7 +80,7 @@ public class DNSHelper { DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); - datagramSocket.setSoTimeout(3000); + datagramSocket.setSoTimeout(7000); //die sieben ist meine zahl datagramSocket.receive(receivePacket); if (receiveData[3] != -128) { namePort.putString("error", "nosrv"); @@ -117,7 +117,7 @@ public class DNSHelper { } } catch (IOException e) { Log.d("xmppService", "io execpiton during dns"); - namePort.putString("error", "nosrv"); + namePort.putString("error", "timeout"); return namePort; } } diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java index e265b997..a32256ff 100644 --- a/src/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java @@ -123,6 +123,11 @@ public class XmppConnection implements Runnable { packetCallbacks.clear(); this.changeStatus(Account.STATUS_CONNECTING); Bundle namePort = DNSHelper.getSRVRecord(account.getServer()); + if ("timeout".equals(namePort.getString("error"))) { + Log.d(LOGTAG,account.getJid()+": dns timeout"); + this.changeStatus(Account.STATUS_OFFLINE); + return; + } String srvRecordServer = namePort.getString("name"); int srvRecordPort = namePort.getInt("port"); if (srvRecordServer != null) { |