add more logging to caps fetching
This commit is contained in:
parent
8059aa7b0d
commit
971bb60f42
|
@ -2778,6 +2778,7 @@ public class XmppConnectionService extends Service {
|
||||||
updateConversationUi();
|
updateConversationUi();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fetchConferenceMembers(final Conversation conversation) {
|
private void fetchConferenceMembers(final Conversation conversation) {
|
||||||
final Account account = conversation.getAccount();
|
final Account account = conversation.getAccount();
|
||||||
final AxolotlService axolotlService = account.getAxolotlService();
|
final AxolotlService axolotlService = account.getAxolotlService();
|
||||||
|
@ -3304,7 +3305,7 @@ public class XmppConnectionService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createMessageAsync(final Message message) {
|
public void createMessageAsync(final Message message) {
|
||||||
mDatabaseWriterExecutor.execute(()-> databaseBackend.createMessage(message));
|
mDatabaseWriterExecutor.execute(() -> databaseBackend.createMessage(message));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateMessage(Message message, String uuid) {
|
public void updateMessage(Message message, String uuid) {
|
||||||
|
@ -4444,34 +4445,38 @@ public class XmppConnectionService extends Service {
|
||||||
|
|
||||||
public void fetchCaps(Account account, final Jid jid, final Presence presence) {
|
public void fetchCaps(Account account, final Jid jid, final Presence presence) {
|
||||||
final Pair<String, String> key = new Pair<>(presence.getHash(), presence.getVer());
|
final Pair<String, String> key = new Pair<>(presence.getHash(), presence.getVer());
|
||||||
ServiceDiscoveryResult disco = getCachedServiceDiscoveryResult(key);
|
final ServiceDiscoveryResult disco = getCachedServiceDiscoveryResult(key);
|
||||||
if (disco != null) {
|
if (disco != null) {
|
||||||
presence.setServiceDiscoveryResult(disco);
|
presence.setServiceDiscoveryResult(disco);
|
||||||
} else {
|
} else {
|
||||||
if (!account.inProgressDiscoFetches.contains(key)) {
|
if (account.inProgressDiscoFetches.contains(key)) {
|
||||||
account.inProgressDiscoFetches.add(key);
|
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": skipping duplicate disco request for " + key.second + " to " + jid);
|
||||||
IqPacket request = new IqPacket(IqPacket.TYPE.GET);
|
return;
|
||||||
request.setTo(jid);
|
|
||||||
final String node = presence.getNode();
|
|
||||||
final String ver = presence.getVer();
|
|
||||||
final Element query = request.query(Namespace.DISCO_INFO);
|
|
||||||
if (node != null && ver != null) {
|
|
||||||
query.setAttribute("node", node + "#" + ver);
|
|
||||||
}
|
|
||||||
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": making disco request for " + key.second + " to " + jid);
|
|
||||||
sendIqPacket(account, request, (a, response) -> {
|
|
||||||
if (response.getType() == IqPacket.TYPE.RESULT) {
|
|
||||||
ServiceDiscoveryResult discoveryResult = new ServiceDiscoveryResult(response);
|
|
||||||
if (presence.getVer().equals(discoveryResult.getVer())) {
|
|
||||||
databaseBackend.insertDiscoveryResult(discoveryResult);
|
|
||||||
injectServiceDiscoveryResult(a.getRoster(), presence.getHash(), presence.getVer(), discoveryResult);
|
|
||||||
} else {
|
|
||||||
Log.d(Config.LOGTAG, a.getJid().asBareJid() + ": mismatch in caps for contact " + jid + " " + presence.getVer() + " vs " + discoveryResult.getVer());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
a.inProgressDiscoFetches.remove(key);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
account.inProgressDiscoFetches.add(key);
|
||||||
|
final IqPacket request = new IqPacket(IqPacket.TYPE.GET);
|
||||||
|
request.setTo(jid);
|
||||||
|
final String node = presence.getNode();
|
||||||
|
final String ver = presence.getVer();
|
||||||
|
final Element query = request.query(Namespace.DISCO_INFO);
|
||||||
|
if (node != null && ver != null) {
|
||||||
|
query.setAttribute("node", node + "#" + ver);
|
||||||
|
}
|
||||||
|
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": making disco request for " + key.second + " to " + jid);
|
||||||
|
sendIqPacket(account, request, (a, response) -> {
|
||||||
|
if (response.getType() == IqPacket.TYPE.RESULT) {
|
||||||
|
ServiceDiscoveryResult discoveryResult = new ServiceDiscoveryResult(response);
|
||||||
|
if (presence.getVer().equals(discoveryResult.getVer())) {
|
||||||
|
databaseBackend.insertDiscoveryResult(discoveryResult);
|
||||||
|
injectServiceDiscoveryResult(a.getRoster(), presence.getHash(), presence.getVer(), discoveryResult);
|
||||||
|
} else {
|
||||||
|
Log.d(Config.LOGTAG, a.getJid().asBareJid() + ": mismatch in caps for contact " + jid + " " + presence.getVer() + " vs " + discoveryResult.getVer());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": unable to fetch caps from " + jid);
|
||||||
|
}
|
||||||
|
a.inProgressDiscoFetches.remove(key);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue