Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/iNPUTmice/Conversations.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2022-11-01 18:44:05 +0300
committerDaniel Gultsch <daniel@gultsch.de>2022-11-01 18:44:36 +0300
commit35ee01cb285bc0c711aaedbdb057de86979cbc58 (patch)
treece8e0597e16b7f0edbd86f3c8815aa879b3a052b
parent6e562d4cf906e50a793bb0a968028dc197051ebf (diff)
reset fast token on login failure
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Account.java5
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java6
2 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java
index 4457e4d1f..7c5f22b27 100644
--- a/src/main/java/eu/siacs/conversations/entities/Account.java
+++ b/src/main/java/eu/siacs/conversations/entities/Account.java
@@ -362,6 +362,11 @@ public class Account extends AbstractEntity implements AvatarService.Avatarable
this.fastToken = token;
}
+ public void resetFastToken() {
+ this.fastMechanism = null;
+ this.fastToken = null;
+ }
+
public void resetPinnedMechanism() {
this.pinnedMechanism = null;
this.pinnedChannelBinding = null;
diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
index fc753ec34..1793c9f29 100644
--- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
@@ -840,7 +840,11 @@ public class XmppConnection implements Runnable {
}
Log.d(Config.LOGTAG,failure.toString());
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": login failure " + version);
- //TODO check if we are doing FAST; reset token
+ if (this.saslMechanism instanceof HashedToken) {
+ Log.d(Config.LOGTAG,account.getJid().asBareJid() + ": resetting token");
+ account.resetFastToken();
+ mXmppConnectionService.databaseBackend.updateAccount(account);
+ }
if (failure.hasChild("temporary-auth-failure")) {
throw new StateChangingException(Account.State.TEMPORARY_AUTH_FAILURE);
} else if (failure.hasChild("account-disabled")) {