From 16897f493585197594d83474c511f1ac0f8ebbfb Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Sun, 2 Oct 2016 18:35:31 +0200 Subject: [PATCH] Remove usage of getLocalHost, other minor changes related to localhost connections in daemon - attempt to fix behaviours similar to #IDEA-161962, #KT-14042 --- .../src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt | 2 +- .../src/org/jetbrains/kotlin/daemon/common/NetworkUtils.kt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt index c00a268e86f..786a8f38170 100644 --- a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt @@ -67,7 +67,7 @@ fun walkDaemons(registryDir: File, private inline fun tryConnectToDaemon(port: Int, report: (DaemonReportCategory, String) -> Unit): CompileService? { try { - val daemon = LocateRegistry.getRegistry(LoopbackNetworkInterface.loopbackInetAddressName, port) + val daemon = LocateRegistry.getRegistry(LoopbackNetworkInterface.loopbackInetAddressName, port, LoopbackNetworkInterface.clientLoopbackSocketFactory) ?.lookup(COMPILER_SERVICE_RMI_NAME) when (daemon) { null -> report(DaemonReportCategory.EXCEPTION, "daemon not found") diff --git a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/NetworkUtils.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/NetworkUtils.kt index b7123708250..ab09aeb3066 100644 --- a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/NetworkUtils.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/NetworkUtils.kt @@ -46,7 +46,7 @@ object LoopbackNetworkInterface { // TODO switch to InetAddress.getLoopbackAddress on java 7+ val loopbackInetAddressName by lazy { try { - if (InetAddress.getLocalHost() is Inet6Address) IPV6_LOOPBACK_INET_ADDRESS else IPV4_LOOPBACK_INET_ADDRESS + if (InetAddress.getByName(null) is Inet6Address) IPV6_LOOPBACK_INET_ADDRESS else IPV4_LOOPBACK_INET_ADDRESS } catch (e: IOException) { // getLocalHost may fail for unknown reasons in some situations, the fallback is to assume IPv4 for now @@ -63,7 +63,7 @@ object LoopbackNetworkInterface { override fun hashCode(): Int = super.hashCode() @Throws(IOException::class) - override fun createServerSocket(port: Int): ServerSocket = ServerSocket(port, SERVER_SOCKET_BACKLOG_SIZE, InetAddress.getByName(loopbackInetAddressName)) + override fun createServerSocket(port: Int): ServerSocket = ServerSocket(port, SERVER_SOCKET_BACKLOG_SIZE, InetAddress.getByName(null)) } @@ -72,7 +72,7 @@ object LoopbackNetworkInterface { override fun hashCode(): Int = super.hashCode() @Throws(IOException::class) - override fun createSocket(host: String, port: Int): Socket = Socket(InetAddress.getByName(loopbackInetAddressName), port) + override fun createSocket(host: String, port: Int): Socket = Socket(InetAddress.getByName(null), port) } }