From 9861ea50b6a377ae4eb62f7d19d45214ec27aa1d Mon Sep 17 00:00:00 2001 From: Sergey Mashkov Date: Fri, 12 Oct 2018 17:38:48 +0300 Subject: [PATCH] Eliminate unreachable code warning --- .../io/ktor/client/features/HttpRedirect.kt | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/ktor-client/ktor-client-core/src/io/ktor/client/features/HttpRedirect.kt b/ktor-client/ktor-client-core/src/io/ktor/client/features/HttpRedirect.kt index 044f8d3a9f..028eec9013 100644 --- a/ktor-client/ktor-client-core/src/io/ktor/client/features/HttpRedirect.kt +++ b/ktor-client/ktor-client-core/src/io/ktor/client/features/HttpRedirect.kt @@ -20,20 +20,23 @@ class HttpRedirect { override fun install(feature: HttpRedirect, scope: HttpClient) { scope.feature(HttpSend)!!.intercept { origin -> - if (!origin.response.status.isRedirect()) return@intercept origin + handleCall(origin) + } + } + + private suspend fun Sender.handleCall(origin: HttpClientCall): HttpClientCall { + if (!origin.response.status.isRedirect()) return origin - var call = origin - while (true) { - val location = call.response.headers[HttpHeaders.Location] + var call = origin + while (true) { + val location = call.response.headers[HttpHeaders.Location] - call = execute(HttpRequestBuilder().apply { - takeFrom(origin.request) - location?.let { url.takeFrom(it) } - }) + call = execute(HttpRequestBuilder().apply { + takeFrom(origin.request) + location?.let { url.takeFrom(it) } + }) - if (!call.response.status.isRedirect()) return@intercept call - } - return@intercept call + if (!call.response.status.isRedirect()) return call } } }