change access model of omemo pep nodes after every publish
This commit is contained in:
parent
6c95897f09
commit
25e993693f
|
@ -51,6 +51,7 @@ import eu.siacs.conversations.xmpp.OnAdvancedStreamFeaturesLoaded;
|
||||||
import eu.siacs.conversations.xmpp.OnIqPacketReceived;
|
import eu.siacs.conversations.xmpp.OnIqPacketReceived;
|
||||||
import eu.siacs.conversations.xmpp.jid.InvalidJidException;
|
import eu.siacs.conversations.xmpp.jid.InvalidJidException;
|
||||||
import eu.siacs.conversations.xmpp.jid.Jid;
|
import eu.siacs.conversations.xmpp.jid.Jid;
|
||||||
|
import eu.siacs.conversations.xmpp.pep.PublishOptions;
|
||||||
import eu.siacs.conversations.xmpp.stanzas.IqPacket;
|
import eu.siacs.conversations.xmpp.stanzas.IqPacket;
|
||||||
|
|
||||||
public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
|
@ -436,7 +437,14 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
deviceIds.add(getOwnDeviceId());
|
deviceIds.add(getOwnDeviceId());
|
||||||
IqPacket publish = mXmppConnectionService.getIqGenerator().publishDeviceIds(deviceIds);
|
IqPacket publish = mXmppConnectionService.getIqGenerator().publishDeviceIds(deviceIds);
|
||||||
Log.d(Config.LOGTAG, AxolotlService.getLogprefix(account) + "Wiping all other devices from Pep:" + publish);
|
Log.d(Config.LOGTAG, AxolotlService.getLogprefix(account) + "Wiping all other devices from Pep:" + publish);
|
||||||
mXmppConnectionService.sendIqPacket(account, publish, null);
|
mXmppConnectionService.sendIqPacket(account, publish, new OnIqPacketReceived() {
|
||||||
|
@Override
|
||||||
|
public void onIqPacketReceived(Account account, IqPacket packet) {
|
||||||
|
if (packet.getType() == IqPacket.TYPE.RESULT) {
|
||||||
|
mXmppConnectionService.pushNodeConfiguration(account, AxolotlService.PEP_DEVICE_LIST, PublishOptions.openAccess(), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void distrustFingerprint(final String fingerprint) {
|
public void distrustFingerprint(final String fingerprint) {
|
||||||
|
@ -512,6 +520,8 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
if (packet.getType() == IqPacket.TYPE.ERROR) {
|
if (packet.getType() == IqPacket.TYPE.ERROR) {
|
||||||
pepBroken = true;
|
pepBroken = true;
|
||||||
Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing own device id" + packet.findChild("error"));
|
Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing own device id" + packet.findChild("error"));
|
||||||
|
} else if (packet.getType() != IqPacket.TYPE.TIMEOUT) {
|
||||||
|
mXmppConnectionService.pushNodeConfiguration(account, AxolotlService.PEP_DEVICE_LIST, PublishOptions.openAccess(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -535,9 +545,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
@Override
|
@Override
|
||||||
public void onIqPacketReceived(final Account account, IqPacket packet) {
|
public void onIqPacketReceived(final Account account, IqPacket packet) {
|
||||||
String node = AxolotlService.PEP_VERIFICATION+":"+getOwnDeviceId();
|
String node = AxolotlService.PEP_VERIFICATION+":"+getOwnDeviceId();
|
||||||
Bundle pubsubOptions = new Bundle();
|
mXmppConnectionService.pushNodeConfiguration(account, node, PublishOptions.openAccess(), new XmppConnectionService.OnConfigurationPushed() {
|
||||||
pubsubOptions.putString("pubsub#access_model","open");
|
|
||||||
mXmppConnectionService.pushNodeConfiguration(account, account.getJid().toBareJid(), node, pubsubOptions, new XmppConnectionService.OnConfigurationPushed() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onPushSucceeded() {
|
public void onPushSucceeded() {
|
||||||
Log.d(Config.LOGTAG,getLogprefix(account) + "configured verification node to be world readable");
|
Log.d(Config.LOGTAG,getLogprefix(account) + "configured verification node to be world readable");
|
||||||
|
@ -679,15 +687,26 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
Log.d(Config.LOGTAG, AxolotlService.getLogprefix(account) + ": Bundle " + getOwnDeviceId() + " in PEP not current. Publishing...");
|
Log.d(Config.LOGTAG, AxolotlService.getLogprefix(account) + ": Bundle " + getOwnDeviceId() + " in PEP not current. Publishing...");
|
||||||
mXmppConnectionService.sendIqPacket(account, publish, new OnIqPacketReceived() {
|
mXmppConnectionService.sendIqPacket(account, publish, new OnIqPacketReceived() {
|
||||||
@Override
|
@Override
|
||||||
public void onIqPacketReceived(Account account, IqPacket packet) {
|
public void onIqPacketReceived(final Account account, IqPacket packet) {
|
||||||
if (packet.getType() == IqPacket.TYPE.RESULT) {
|
if (packet.getType() == IqPacket.TYPE.RESULT) {
|
||||||
Log.d(Config.LOGTAG, AxolotlService.getLogprefix(account) + "Successfully published bundle. ");
|
final String node = AxolotlService.PEP_BUNDLES + ":" + getOwnDeviceId();
|
||||||
if (wipe) {
|
mXmppConnectionService.pushNodeConfiguration(account, node, PublishOptions.openAccess(), new XmppConnectionService.OnConfigurationPushed() {
|
||||||
wipeOtherPepDevices();
|
@Override
|
||||||
} else if (announceAfter) {
|
public void onPushSucceeded() {
|
||||||
Log.d(Config.LOGTAG, getLogprefix(account) + "Announcing device " + getOwnDeviceId());
|
Log.d(Config.LOGTAG, AxolotlService.getLogprefix(account) + "Successfully published bundle. ");
|
||||||
publishOwnDeviceIdIfNeeded();
|
if (wipe) {
|
||||||
}
|
wipeOtherPepDevices();
|
||||||
|
} else if (announceAfter) {
|
||||||
|
Log.d(Config.LOGTAG, getLogprefix(account) + "Announcing device " + getOwnDeviceId());
|
||||||
|
publishOwnDeviceIdIfNeeded();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPushFailed() {
|
||||||
|
Log.d(Config.LOGTAG,"unable to change access model for pubsub node");
|
||||||
|
}
|
||||||
|
});
|
||||||
} else if (packet.getType() == IqPacket.TYPE.ERROR) {
|
} else if (packet.getType() == IqPacket.TYPE.ERROR) {
|
||||||
pepBroken = true;
|
pepBroken = true;
|
||||||
Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing bundle: " + packet.findChild("error"));
|
Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing bundle: " + packet.findChild("error"));
|
||||||
|
|
|
@ -2607,17 +2607,17 @@ public class XmppConnectionService extends Service {
|
||||||
sendIqPacket(account, mIqGenerator.publishPubsubConfiguration(jid, node, data), new OnIqPacketReceived() {
|
sendIqPacket(account, mIqGenerator.publishPubsubConfiguration(jid, node, data), new OnIqPacketReceived() {
|
||||||
@Override
|
@Override
|
||||||
public void onIqPacketReceived(Account account, IqPacket packet) {
|
public void onIqPacketReceived(Account account, IqPacket packet) {
|
||||||
if (packet.getType() == IqPacket.TYPE.RESULT) {
|
if (packet.getType() == IqPacket.TYPE.RESULT && callback != null) {
|
||||||
callback.onPushSucceeded();
|
callback.onPushSucceeded();
|
||||||
} else {
|
} else {
|
||||||
Log.d(Config.LOGTAG,packet.toString());
|
Log.d(Config.LOGTAG,packet.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else if (callback !=null) {
|
||||||
callback.onPushFailed();
|
callback.onPushFailed();
|
||||||
}
|
}
|
||||||
} else {
|
} else if (callback != null){
|
||||||
callback.onPushFailed();
|
callback.onPushFailed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue