aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-02-09 23:20:15 +0100
committerChristian Schneppe <christian@pix-art.de>2019-02-09 23:20:15 +0100
commit441b1c5d67c84a39b6349d7ad1c0b8319d5712a7 (patch)
tree97786eb9e1e7605cc0eae4bd3dbab5a0a1199a67 /src
parent03d2e220676a5420350e9a1407359c92dd27dc7d (diff)
print available stream features / mechanisms on incompat server
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/pixart/messenger/utils/XmlHelper.java17
-rw-r--r--src/main/java/de/pixart/messenger/xmpp/XmppConnection.java4
2 files changed, 21 insertions, 0 deletions
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("&", "&amp;");
@@ -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);
}
}