From 4741e4f8589cfde4c64c02c13df5ba269de4deec Mon Sep 17 00:00:00 2001 From: tarsin Date: Sun, 18 Jun 2023 16:39:04 +0800 Subject: [PATCH] Validate content length --- .../hippo/ehviewer/spider/Android14CoroutineHttpEngine.kt | 7 +++---- app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt | 1 - 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/spider/Android14CoroutineHttpEngine.kt b/app/src/main/java/com/hippo/ehviewer/spider/Android14CoroutineHttpEngine.kt index 9f6ba0c79..6be90c308 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/Android14CoroutineHttpEngine.kt +++ b/app/src/main/java/com/hippo/ehviewer/spider/Android14CoroutineHttpEngine.kt @@ -35,7 +35,7 @@ class CronetRequest { lateinit var onResponse: CronetRequest.(UrlResponseInfo) -> Unit lateinit var request: UrlRequest lateinit var daemonCont: Continuation - lateinit var readerCont: Continuation + lateinit var readerCont: Continuation val callback = object : UrlRequest.Callback { override fun onRedirectReceived(p0: UrlRequest, p1: UrlResponseInfo, p2: String) { // No-op @@ -54,8 +54,7 @@ class CronetRequest { override fun onSucceeded(p0: UrlRequest, p1: UrlResponseInfo) { val length = p1.receivedByteCount - // TODO: validate body length - readerCont.resume(Unit) + readerCont.resume(length) daemonCont.resume(true) } @@ -76,7 +75,7 @@ inline fun cronetRequest(url: String, conf: UrlRequest.Builder.() -> Unit) = Cro request = cronetHttpClient.newUrlRequestBuilder(url, cronetHttpClientExecutor, callback).apply(conf).build() } -suspend infix fun CronetRequest.consumeBodyFully(callback: (UrlResponseInfo, ByteBuffer) -> Unit) = apply { +suspend infix fun CronetRequest.consumeBodyFully(callback: (UrlResponseInfo, ByteBuffer) -> Unit) = run { mConsumer = callback suspendCancellableCoroutine { cont -> readerCont = cont diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt index 63ed3e68a..0adf570be 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt @@ -149,7 +149,6 @@ class SpiderDen(private val mGalleryInfo: GalleryInfo) { notifyProgress(length, info.receivedByteCount, read) } } - file.length() } } } finally {