aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/xmpp
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-02-22 20:21:47 +0100
committerChristian Schneppe <christian@pix-art.de>2017-02-22 20:49:04 +0100
commit836a2fa6eb8342599890d619886dd8af198fe60e (patch)
tree1639deb3569229b61c13180b555fce96897c133f /src/main/java/de/pixart/messenger/xmpp
parent472a08daad551e312ca7ca3b3bf30957f7f99b35 (diff)
migrate domain and host exemption into seperate class
Diffstat (limited to 'src/main/java/de/pixart/messenger/xmpp')
-rw-r--r--src/main/java/de/pixart/messenger/xmpp/Patches.java16
-rw-r--r--src/main/java/de/pixart/messenger/xmpp/XmppConnection.java9
2 files changed, 23 insertions, 2 deletions
diff --git a/src/main/java/de/pixart/messenger/xmpp/Patches.java b/src/main/java/de/pixart/messenger/xmpp/Patches.java
new file mode 100644
index 000000000..85b32e3d5
--- /dev/null
+++ b/src/main/java/de/pixart/messenger/xmpp/Patches.java
@@ -0,0 +1,16 @@
+package de.pixart.messenger.xmpp;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class Patches {
+ public static final List<String> DISCO_EXCEPTIONS = Arrays.asList(
+ "nimbuzz.com"
+ );
+ public static final List<XmppConnection.Identity> SUFFICIENT_PUSH = Arrays.asList(
+ XmppConnection.Identity.EJABBERD
+ );
+ public static final List<XmppConnection.Identity> BAD_MUC_REFLECTION = Arrays.asList(
+ XmppConnection.Identity.SLACK
+ );
+} \ No newline at end of file
diff --git a/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java b/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java
index 4a93d1eb6..aba117b77 100644
--- a/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java
+++ b/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java
@@ -1118,10 +1118,15 @@ public class XmppConnection implements Runnable {
synchronized (this.disco) {
this.disco.clear();
}
+ Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": starting service discovery");
mPendingServiceDiscoveries.set(0);
- mWaitForDisco.set(smVersion != 0 && !account.getJid().getDomainpart().equalsIgnoreCase("nimbuzz.com"));
+ if (smVersion == 0 || Patches.DISCO_EXCEPTIONS.contains(account.getJid().getDomainpart())) {
+ Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": do not wait for service discovery");
+ mWaitForDisco.set(false);
+ } else {
+ mWaitForDisco.set(true);
+ }
lastDiscoStarted = SystemClock.elapsedRealtime();
- Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": starting service discovery");
mXmppConnectionService.scheduleWakeUpCall(Config.CONNECT_DISCO_TIMEOUT, account.getUuid().hashCode());
Element caps = streamFeatures.findChild("c");
final String hash = caps == null ? null : caps.getAttribute("hash");