Skip to content

Commit 4657cb2

Browse files
authored
KTOR-4827 Fix CIO response delay (#3150)
1 parent b9d20b4 commit 4657cb2

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
lines changed

ktor-network/jvm/src/io/ktor/network/sockets/JavaSocketAddressUtils.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package io.ktor.network.sockets
66

77
public fun SocketAddress.toJavaAddress(): java.net.SocketAddress {
8+
// Do not read the hostname here because that may trigger a name service reverse lookup.
89
return address
910
}
1011

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
* Copyright 2014-2022 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
package io.ktor.server.cio.backend
6+
7+
import io.ktor.network.sockets.*
8+
import io.ktor.util.network.*
9+
10+
internal actual fun SocketAddress.toNetworkAddress(): NetworkAddress {
11+
// Do not read the hostname here because that may trigger a name service reverse lookup.
12+
return toJavaAddress() as? java.net.InetSocketAddress ?: error("Expected inet socket address")
13+
}

ktor-server/ktor-server-cio/jvmAndNix/src/io/ktor/server/cio/backend/SocketAddressUtils.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,4 @@ internal val SocketAddress.port: Int
1313
return inetAddress.port
1414
}
1515

16-
internal fun SocketAddress.toNetworkAddress(): NetworkAddress {
17-
val inetAddress = this as? InetSocketAddress ?: error("Expected inet socket address")
18-
return NetworkAddress(inetAddress.hostname, inetAddress.port)
19-
}
16+
internal expect fun SocketAddress.toNetworkAddress(): NetworkAddress
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
* Copyright 2014-2022 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
package io.ktor.server.cio.backend
6+
7+
import io.ktor.network.sockets.*
8+
import io.ktor.util.network.*
9+
10+
internal actual fun SocketAddress.toNetworkAddress(): NetworkAddress {
11+
val inetAddress = this as? InetSocketAddress ?: error("Expected inet socket address")
12+
return NetworkAddress(inetAddress.hostname, inetAddress.port)
13+
}

0 commit comments

Comments
 (0)