[MOD] Cache disco

This commit is contained in:
LDA 2024-08-30 18:13:24 +02:00
commit 9d9453f96a
7 changed files with 44 additions and 25 deletions

View file

@ -145,26 +145,10 @@ ServerHasXEP421(ParseeData *data, char *from)
*(strchr(server, '/')) = '\0';
}
pthread_mutex_lock(&data->oidl);
ret = HashMapGet(data->oid_servers, server);
pthread_mutex_unlock(&data->oidl);
if (ret)
{
Log(LOG_DEBUG, "XEP-0421 is cached for '%s'", server);
Free(server);
return ret;
}
parsee = ParseeJID(data);
disco = XMPPSendDisco(data->jabber, parsee, server);
disco = XMPPSendDisco(data, parsee, server);
ret = XMPPDiscoAdvertises(disco, "urn:xmpp:occupant-id:0");
if (ret)
{
pthread_mutex_lock(&data->oidl);
HashMapSet(data->oid_servers, server, server);
pthread_mutex_unlock(&data->oidl);
}
XMLFreeElement(disco);
Free(parsee);