diff options
Diffstat (limited to 'src/main/java/eu')
-rw-r--r-- | src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java index 4dd7cfc7..9148aa72 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java @@ -599,9 +599,9 @@ public class XmppConnection implements Runnable { if (verifier != null && !verifier.verify(account.getServer().getDomainpart(), sslSocket.getSession())) { - account.setStatus(Account.State.SECURITY_ERROR); - sslSocket.close(); - throw new IOException("Host mismatch in TLS connection"); + Log.d(Config.LOGTAG,account.getJid().toBareJid()+": TLS certificate verification failed"); + disconnect(true); + changeStatus(Account.State.SECURITY_ERROR); } tagReader.setInputStream(sslSocket.getInputStream()); tagWriter.setOutputStream(sslSocket.getOutputStream()); @@ -653,12 +653,12 @@ public class XmppConnection implements Runnable { ") than pinned priority (" + keys.getInt(Account.PINNED_MECHANISM_KEY) + "). Possible downgrade attack?"); disconnect(true); - account.setStatus(Account.State.SECURITY_ERROR); + changeStatus(Account.State.SECURITY_ERROR); } } catch (final JSONException e) { Log.d(Config.LOGTAG, "Parse error while checking pinned auth mechanism"); } - Log.d(Config.LOGTAG, "Authenticating with " + saslMechanism.getMechanism()); + Log.d(Config.LOGTAG,account.getJid().toString()+": Authenticating with " + saslMechanism.getMechanism()); auth.setAttribute("mechanism", saslMechanism.getMechanism()); if (!saslMechanism.getClientFirstMessage().isEmpty()) { auth.setContent(saslMechanism.getClientFirstMessage()); @@ -673,10 +673,8 @@ public class XmppConnection implements Runnable { } else if (this.streamFeatures.hasChild("bind") && shouldBind) { sendBindRequest(); } else { - account.setStatus(Account.State.INCOMPATIBLE_SERVER); - Log.d(Config.LOGTAG, account.getJid().toBareJid() - + ": incompatible server. disconnecting"); disconnect(true); + changeStatus(Account.State.INCOMPATIBLE_SERVER); } } |