From 9ca0307e1c4d0f39028154c55438548fb9d8b5fc Mon Sep 17 00:00:00 2001 From: DitFranXX <45893338+DitFranXX@users.noreply.github.com> Date: Thu, 21 Mar 2019 16:48:03 +0900 Subject: [PATCH] [Cloudflare] Fix 503 due to missing value in js challenge. (#1913) Related issues: inorichi/tachiyomi-extensions#951 --- .../eu/kanade/tachiyomi/network/CloudflareInterceptor.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt b/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt index 5bee37cabe..7c432f4294 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt @@ -12,6 +12,8 @@ class CloudflareInterceptor : Interceptor { private val challengePattern = Regex("""name="jschl_vc" value="(\w+)"""") + private val sPattern = Regex("""name="s" value="([^"]+)""") + private val serverCheck = arrayOf("cloudflare-nginx", "cloudflare") @Synchronized @@ -45,8 +47,9 @@ class CloudflareInterceptor : Interceptor { val operation = operationPattern.find(content)?.groups?.get(1)?.value val challenge = challengePattern.find(content)?.groups?.get(1)?.value val pass = passPattern.find(content)?.groups?.get(1)?.value + val s = sPattern.find(content)?.groups?.get(1)?.value - if (operation == null || challenge == null || pass == null) { + if (operation == null || challenge == null || pass == null || s == null) { throw Exception("Failed resolving Cloudflare challenge") } @@ -62,6 +65,7 @@ class CloudflareInterceptor : Interceptor { .newBuilder() .addQueryParameter("jschl_vc", challenge) .addQueryParameter("pass", pass) + .addQueryParameter("s", s) .addQueryParameter("jschl_answer", result) .toString()