From df04b16a5e51ee8a4a3c0202a1f4824ab55b1193 Mon Sep 17 00:00:00 2001 From: Aleksei Tirman Date: Wed, 3 Apr 2024 13:30:06 +0200 Subject: [PATCH] =?UTF-8?q?KTOR-5383=20Fix=20parsing=20server=20host=20and?= =?UTF-8?q?=20port=20when=20using=20NettyConnection=E2=80=A6=20(#4014)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * KTOR-5383 Fix parsing server host and port when using NettyConnectionPoint and CIOConnectionPoint (cherry picked from commit d5b4053da623b18305f72f7594180ae5faa788cd) --- .../jvmAndNix/src/io/ktor/server/cio/CIOApplicationRequest.kt | 4 ++-- .../src/io/ktor/server/netty/http1/NettyConnectionPoint.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ktor-server/ktor-server-cio/jvmAndNix/src/io/ktor/server/cio/CIOApplicationRequest.kt b/ktor-server/ktor-server-cio/jvmAndNix/src/io/ktor/server/cio/CIOApplicationRequest.kt index 6d012a7400..2af3feb2e5 100644 --- a/ktor-server/ktor-server-cio/jvmAndNix/src/io/ktor/server/cio/CIOApplicationRequest.kt +++ b/ktor-server/ktor-server-cio/jvmAndNix/src/io/ktor/server/cio/CIOApplicationRequest.kt @@ -77,14 +77,14 @@ internal class CIOConnectionPoint( override val serverPort: Int get() = hostHeaderValue - ?.substringAfter(":", defaultPort.toString())?.toInt() + ?.substringAfterLast(":", defaultPort.toString())?.toInt() ?: localPort override val localHost: String get() = localNetworkAddress?.hostname ?: "localhost" override val serverHost: String - get() = hostHeaderValue?.substringBefore(":") ?: localHost + get() = hostHeaderValue?.substringBeforeLast(":") ?: localHost override val localAddress: String get() = localNetworkAddress?.address ?: "localhost" diff --git a/ktor-server/ktor-server-netty/jvm/src/io/ktor/server/netty/http1/NettyConnectionPoint.kt b/ktor-server/ktor-server-netty/jvm/src/io/ktor/server/netty/http1/NettyConnectionPoint.kt index eb53c96640..5326321a95 100644 --- a/ktor-server/ktor-server-netty/jvm/src/io/ktor/server/netty/http1/NettyConnectionPoint.kt +++ b/ktor-server/ktor-server-netty/jvm/src/io/ktor/server/netty/http1/NettyConnectionPoint.kt @@ -45,7 +45,7 @@ internal class NettyConnectionPoint( ?: "localhost" override val serverHost: String - get() = request.headers().get(HttpHeaders.Host)?.substringBefore(":") ?: localHost + get() = request.headers().get(HttpHeaders.Host)?.substringBeforeLast(":") ?: localHost override val localAddress: String get() = (context.channel().localAddress() as? InetSocketAddress)?.hostString ?: "localhost" @@ -57,7 +57,7 @@ internal class NettyConnectionPoint( get() = (context.channel().localAddress() as? InetSocketAddress)?.port ?: defaultPort override val serverPort: Int - get() = request.headers().get(HttpHeaders.Host)?.substringAfter(":", defaultPort.toString())?.toInt() + get() = request.headers().get(HttpHeaders.Host)?.substringAfterLast(":", defaultPort.toString())?.toInt() ?: localPort override val remoteHost: String