try all srv responses if necessary

This commit is contained in:
Frank Zschockelt 2014-10-16 23:31:48 +02:00
parent 5e3caf9626
commit c725da954c

View File

@ -161,10 +161,23 @@ public class XmppConnection implements Runnable {
+ "[" + srvIpServer + "]:" + srvRecordPort); + "[" + srvIpServer + "]:" + srvRecordPort);
socket = new Socket(srvIpServer, srvRecordPort); socket = new Socket(srvIpServer, srvRecordPort);
} else { } else {
Log.d(Config.LOGTAG, account.getJid() boolean socketError = true;
+ ": using values from dns " + srvRecordServer int srvIndex = 0;
+ ":" + srvRecordPort); while (socketError && namePort.containsKey("name" + srvIndex)){
socket = new Socket(srvRecordServer, srvRecordPort); try {
srvRecordServer = namePort.getString("name" + srvIndex);
srvRecordPort = namePort.getInt("port" + srvIndex);
Log.d(Config.LOGTAG, account.getJid()
+ ": using values from dns " + srvRecordServer
+ ":" + srvRecordPort);
socket = new Socket(srvRecordServer, srvRecordPort);
socketError = false;
} catch (UnknownHostException e) {
srvIndex++;
} catch (IOException e) {
srvIndex++;
}
}
} }
} else if (namePort.containsKey("error") } else if (namePort.containsKey("error")
&& "nosrv".equals(namePort.getString("error", null))) { && "nosrv".equals(namePort.getString("error", null))) {