Clear cache including dnssec when disable account

Stephen Paul Weber created

Change summary

src/cheogram/java/eu/siacs/conversations/ui/ManageAccountActivity.java | 2 
src/main/java/eu/siacs/conversations/utils/Resolver.java               | 7 
2 files changed, 9 insertions(+)

Detailed changes

src/cheogram/java/eu/siacs/conversations/ui/ManageAccountActivity.java 🔗

@@ -37,6 +37,7 @@ import eu.siacs.conversations.services.XmppConnectionService;
 import eu.siacs.conversations.services.XmppConnectionService.OnAccountUpdate;
 import eu.siacs.conversations.ui.adapter.AccountAdapter;
 import eu.siacs.conversations.ui.util.MenuDoubleTabUtil;
+import eu.siacs.conversations.utils.Resolver;
 import eu.siacs.conversations.xmpp.Jid;
 import eu.siacs.conversations.xmpp.XmppConnection;
 
@@ -414,6 +415,7 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda
     }
 
     private void disableAccount(Account account) {
+        Resolver.clearCache();
         account.setOption(Account.OPTION_DISABLED, true);
         if (!xmppConnectionService.updateAccount(account)) {
             Toast.makeText(this, R.string.unable_to_update_account, Toast.LENGTH_SHORT).show();

src/main/java/eu/siacs/conversations/utils/Resolver.java 🔗

@@ -96,6 +96,13 @@ public class Resolver {
             Log.d(Config.LOGTAG,"clearing DNS cache");
             ((LruCache) dnsCache).clear();
         }
+
+        final AbstractDnsClient clientSec = DnssecResolverApi.INSTANCE.getClient();
+        final DnsCache dnsCacheSec = clientSec.getCache();
+        if (dnsCacheSec instanceof LruCache) {
+            Log.d(Config.LOGTAG,"clearing DNSSEC cache");
+            ((LruCache) dnsCacheSec).clear();
+        }
     }