do not detect sm:2 as sm available

the 2.11.0 release removed support for enabling sm:2
unfortunatly sm:2 was still detected as "server supports stream managment"
down the line leading to resend loops.

fixes #4426
This commit is contained in:
Daniel Gultsch 2022-12-16 08:07:41 +01:00
parent c0b4ae8416
commit 499c4ddd0a

View file

@ -758,10 +758,9 @@ public class XmppConnection implements Runnable {
account.getJid().asBareJid() account.getJid().asBareJid()
+ ": jid changed during SASL 2.0. updating database"); + ": jid changed during SASL 2.0. updating database");
} }
final boolean nopStreamFeatures;
final Element bound = success.findChild("bound", Namespace.BIND2); final Element bound = success.findChild("bound", Namespace.BIND2);
final Element resumed = success.findChild("resumed", "urn:xmpp:sm:3"); final Element resumed = success.findChild("resumed", Namespace.STREAM_MANAGEMENT);
final Element failed = success.findChild("failed", "urn:xmpp:sm:3"); final Element failed = success.findChild("failed", Namespace.STREAM_MANAGEMENT);
final Element tokenWrapper = success.findChild("token", Namespace.FAST); final Element tokenWrapper = success.findChild("token", Namespace.FAST);
final String token = tokenWrapper == null ? null : tokenWrapper.getAttribute("token"); final String token = tokenWrapper == null ? null : tokenWrapper.getAttribute("token");
if (bound != null && resumed != null) { if (bound != null && resumed != null) {
@ -1403,7 +1402,7 @@ public class XmppConnection implements Runnable {
quickStartAvailable = false; quickStartAvailable = false;
} else if (version == SaslMechanism.Version.SASL_2) { } else if (version == SaslMechanism.Version.SASL_2) {
final Element inline = authElement.findChild("inline", Namespace.SASL_2); final Element inline = authElement.findChild("inline", Namespace.SASL_2);
final boolean sm = inline != null && inline.hasChild("sm", "urn:xmpp:sm:3"); final boolean sm = inline != null && inline.hasChild("sm", Namespace.STREAM_MANAGEMENT);
final HashedToken.Mechanism hashTokenRequest; final HashedToken.Mechanism hashTokenRequest;
if (usingFast) { if (usingFast) {
hashTokenRequest = null; hashTokenRequest = null;
@ -2666,7 +2665,7 @@ public class XmppConnection implements Runnable {
public boolean sm() { public boolean sm() {
return streamId != null return streamId != null
|| (connection.streamFeatures != null || (connection.streamFeatures != null
&& connection.streamFeatures.hasChild("sm")); && connection.streamFeatures.hasChild("sm", Namespace.STREAM_MANAGEMENT));
} }
public boolean csi() { public boolean csi() {