From 9ed435c75ce3440c2acf7caed5e3f345537b2990 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Thu, 29 Dec 2016 11:09:37 +0100 Subject: don't throw assertion error when building session with same device id from other contact --- .../java/de/pixart/messenger/crypto/axolotl/AxolotlService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/main') diff --git a/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java b/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java index bedc0970a..16a4919fc 100644 --- a/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java +++ b/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java @@ -361,6 +361,10 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { return axolotlStore.getLocalRegistrationId(); } + public AxolotlAddress getOwnAxolotlAddress() { + return new AxolotlAddress(account.getJid().toBareJid().toPreppedString(),getOwnDeviceId()); + } + public Set getOwnDeviceIds() { return this.deviceIds.get(account.getJid().toBareJid()); } @@ -450,6 +454,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { } else { Element item = mXmppConnectionService.getIqParser().getItem(packet); Set deviceIds = mXmppConnectionService.getIqParser().deviceIds(item); + Log.d(Config.LOGTAG,account.getJid().toBareJid()+": retrieved own device list: "+deviceIds); registerDevices(account.getJid().toBareJid(),deviceIds); } } @@ -818,7 +823,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { private void buildSessionFromPEP(final AxolotlAddress address) { Log.i(Config.LOGTAG, AxolotlService.getLogprefix(account) + "Building new session for " + address.toString()); - if (address.getDeviceId() == getOwnDeviceId()) { + if (address.equals(getOwnAxolotlAddress())) { throw new AssertionError("We should NEVER build a session with ourselves. What happened here?!"); } -- cgit v1.2.3