From 01de75fc17e717f1c6b13bef908f218e33641f5a Mon Sep 17 00:00:00 2001 From: Lukellmann Date: Fri, 28 Apr 2023 03:53:17 +0200 Subject: [PATCH] Remove no longer needed pipeline interception The underlying bug is fixed since Ktor 1.6.2, see https://youtrack.jetbrains.com/issue/KTOR-2388 --- .../commonMain/kotlin/DefaultGatewayBuilder.kt | 15 --------------- .../kotlin/gateway/DefaultVoiceGatewayBuilder.kt | 15 --------------- 2 files changed, 30 deletions(-) diff --git a/gateway/src/commonMain/kotlin/DefaultGatewayBuilder.kt b/gateway/src/commonMain/kotlin/DefaultGatewayBuilder.kt index 080e2000761c..e318a83cdeb8 100644 --- a/gateway/src/commonMain/kotlin/DefaultGatewayBuilder.kt +++ b/gateway/src/commonMain/kotlin/DefaultGatewayBuilder.kt @@ -10,8 +10,6 @@ import dev.kord.gateway.retry.Retry import io.ktor.client.* import io.ktor.client.plugins.contentnegotiation.* import io.ktor.client.plugins.websocket.* -import io.ktor.client.request.* -import io.ktor.http.* import io.ktor.serialization.kotlinx.json.* import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers @@ -39,19 +37,6 @@ public class DefaultGatewayBuilder { val sendRateLimiter = sendRateLimiter ?: IntervalRateLimiter(limit = 120, interval = 60.seconds) val identifyRateLimiter = identifyRateLimiter ?: IdentifyRateLimiter(maxConcurrency = 1, dispatcher) - client.requestPipeline.intercept(HttpRequestPipeline.Render) { - // CIO adds this header even if no extensions are used, which causes it to be empty - // This immediately kills the gateway connection - if (context.url.protocol.isWebsocket()) { - val header = context.headers[HttpHeaders.SecWebSocketExtensions] - // If it's blank Discord ragequits - if (header?.isBlank() == true) { - context.headers.remove(HttpHeaders.SecWebSocketExtensions) - } - } - proceed() - } - val data = DefaultGatewayData( url, client, diff --git a/voice/src/main/kotlin/gateway/DefaultVoiceGatewayBuilder.kt b/voice/src/main/kotlin/gateway/DefaultVoiceGatewayBuilder.kt index 9065b341fe99..fa9426296d50 100644 --- a/voice/src/main/kotlin/gateway/DefaultVoiceGatewayBuilder.kt +++ b/voice/src/main/kotlin/gateway/DefaultVoiceGatewayBuilder.kt @@ -8,8 +8,6 @@ import io.ktor.client.* import io.ktor.client.engine.cio.* import io.ktor.client.plugins.contentnegotiation.* import io.ktor.client.plugins.websocket.* -import io.ktor.client.request.* -import io.ktor.http.* import io.ktor.serialization.kotlinx.json.* import kotlinx.coroutines.flow.MutableSharedFlow import kotlin.time.Duration.Companion.seconds @@ -33,19 +31,6 @@ public class DefaultVoiceGatewayBuilder( } val retry = reconnectRetry ?: LinearRetry(2.seconds, 20.seconds, 10) - client.requestPipeline.intercept(HttpRequestPipeline.Render) { - // CIO adds this header even if no extensions are used, which causes it to be empty - // This immediately kills the gateway connection - if (context.url.protocol.isWebsocket()) { - val header = context.headers[HttpHeaders.SecWebSocketExtensions] - // If it's blank Discord ragequits - if (header?.isBlank() == true) { - context.headers.remove(HttpHeaders.SecWebSocketExtensions) - } - } - proceed() - } - val data = DefaultVoiceGatewayData( selfId, guildId,