fix pubserve
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Fri, 15 Apr 2016 14:48:23 +0000 (16:48 +0200)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Fri, 22 Apr 2016 13:16:44 +0000 (15:16 +0200)
platform/platform-impl/src/org/jetbrains/io/netty.kt

index c01fc8febdd8c9273b97ad439a02b87f248882de..760f54b84becace07c3737539658bfad6f109b8e 100644 (file)
@@ -131,15 +131,13 @@ inline fun <T> ByteBuf.releaseIfError(task: () -> T): T {
 }
 
 fun isLocalHost(host: String, onlyAnyOrLoopback: Boolean, hostsOnly: Boolean = false): Boolean {
-  if (onlyAnyOrLoopback) {
-    if (NetUtils.isLocalhost(host)) {
-      return true
-    }
+  if (NetUtils.isLocalhost(host)) {
+    return true
+  }
 
-    if (!InetAddresses.isInetAddress(host)) {
-      return false
-    }
-    // if IP address, it is safe to use getByName (not affected by DNS rebinding)
+  // if IP address, it is safe to use getByName (not affected by DNS rebinding)
+  if (onlyAnyOrLoopback && !InetAddresses.isInetAddress(host)) {
+    return false
   }
 
   fun InetAddress.isLocal() = isAnyLocalAddress || isLoopbackAddress || NetworkInterface.getByInetAddress(this) != null
@@ -149,6 +147,7 @@ fun isLocalHost(host: String, onlyAnyOrLoopback: Boolean, hostsOnly: Boolean = f
     if (!address.isLocal()) {
       return false
     }
+    // be aware - on windows hosts file doesn't contain localhost
     // hosts can contain remote addresses, so, we check it
     if (hostsOnly && !InetAddresses.isInetAddress(host)) {
       return HostsFileEntriesResolver.DEFAULT.address(host).let { it != null && it.isLocal() }