From 441b1c5d67c84a39b6349d7ad1c0b8319d5712a7 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 9 Feb 2019 23:20:15 +0100 Subject: print available stream features / mechanisms on incompat server --- src/main/java/de/pixart/messenger/utils/XmlHelper.java | 17 +++++++++++++++++ .../java/de/pixart/messenger/xmpp/XmppConnection.java | 4 ++++ 2 files changed, 21 insertions(+) (limited to 'src') diff --git a/src/main/java/de/pixart/messenger/utils/XmlHelper.java b/src/main/java/de/pixart/messenger/utils/XmlHelper.java index 299deed28..d990661e6 100644 --- a/src/main/java/de/pixart/messenger/utils/XmlHelper.java +++ b/src/main/java/de/pixart/messenger/utils/XmlHelper.java @@ -1,5 +1,7 @@ package de.pixart.messenger.utils; +import de.pixart.messenger.xml.Element; + public class XmlHelper { public static String encodeEntities(String content) { content = content.replace("&", "&"); @@ -10,4 +12,19 @@ public class XmlHelper { content = content.replaceAll("[\\p{Cntrl}&&[^\n\t\r]]", ""); return content; } + + public static String printElementNames(final Element element) { + final StringBuilder builder = new StringBuilder(); + builder.append('['); + if (element != null) { + for (Element child : element.getChildren()) { + if (builder.length() != 1) { + builder.append(','); + } + builder.append(child.getName()); + } + } + builder.append(']'); + return builder.toString(); + } } diff --git a/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java b/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java index ae95058fa..98d3b6dba 100644 --- a/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java +++ b/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java @@ -80,6 +80,7 @@ import de.pixart.messenger.utils.Patterns; import de.pixart.messenger.utils.Resolver; import de.pixart.messenger.utils.SSLSocketHelper; import de.pixart.messenger.utils.SocksSocketFactory; +import de.pixart.messenger.utils.XmlHelper; import de.pixart.messenger.xml.Element; import de.pixart.messenger.xml.Tag; import de.pixart.messenger.xml.TagWriter; @@ -874,6 +875,7 @@ public class XmppConnection implements Runnable { if (isSecure) { sendRegistryRequest(); } else { + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": unable to find STARTTLS for registration process " + XmlHelper.printElementNames(this.streamFeatures)); throw new StateChangingException(Account.State.INCOMPATIBLE_SERVER); } } else if (!this.streamFeatures.hasChild("register") && account.isOptionSet(Account.OPTION_REGISTER)) { @@ -892,6 +894,7 @@ public class XmppConnection implements Runnable { if (this.streamFeatures.hasChild("bind") && isSecure) { sendBindRequest(); } else { + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": unable to find bind feature " + XmlHelper.printElementNames(this.streamFeatures)); throw new StateChangingException(Account.State.INCOMPATIBLE_SERVER); } } @@ -930,6 +933,7 @@ public class XmppConnection implements Runnable { } tagWriter.writeElement(auth); } else { + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": unable to find SASL mechanism " + saslMechanism.toString()); throw new StateChangingException(Account.State.INCOMPATIBLE_SERVER); } } -- cgit v1.2.3