From 1cd81e1cadb57c1a429f528e8df1e357677cceb9 Mon Sep 17 00:00:00 2001 From: Fox2Code Date: Fri, 19 Nov 2021 23:58:40 +0100 Subject: [PATCH] Make DoH to accept temporary CDN cookies. --- app/src/main/java/com/fox2code/mmm/utils/Http.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/fox2code/mmm/utils/Http.java b/app/src/main/java/com/fox2code/mmm/utils/Http.java index ac86414..fa4d904 100644 --- a/app/src/main/java/com/fox2code/mmm/utils/Http.java +++ b/app/src/main/java/com/fox2code/mmm/utils/Http.java @@ -37,6 +37,7 @@ public class Http { OkHttpClient.Builder httpclientBuilder = new OkHttpClient.Builder(); httpclientBuilder.connectTimeout(11, TimeUnit.SECONDS); try { + httpclientBuilder.cookieJar(new CDNCookieJar()); httpclientBuilder.dns(new DnsOverHttps.Builder().client(httpclientBuilder.build()).url( Objects.requireNonNull(HttpUrl.parse("https://cloudflare-dns.com/dns-query"))) .bootstrapDnsHosts( @@ -53,6 +54,7 @@ public class Http { } catch (UnknownHostException|RuntimeException e) { Log.e("Http", "Failed to init DoH", e); } + httpclientBuilder.cookieJar(CookieJar.NO_COOKIES); httpClient = httpclientBuilder.build(); MainApplication mainApplication = MainApplication.getINSTANCE(); if (mainApplication != null) { @@ -139,7 +141,10 @@ public class Http { * Cookie jar that allow CDN cookies, reset on app relaunch * Note: An argument can be made that it allow tracking but * caching is a better attack vector for tracking, this system - * only exist to help CDN and cache to work together. + * only exist to improve CDN response time, any other cookies + * that are not CDN related are just simply ignored. + * + * Note: CDNCookies are only stored in RAM unlike https cache * */ private static class CDNCookieJar implements CookieJar { private final HashMap cookieMap = new HashMap<>();