mirror of
https://github.com/corda/corda.git
synced 2025-03-10 22:44:20 +00:00
Merged in mike-so-reuseaddr (pull request #321)
Testing: Make PortAllocation set SO_REUSEADDR to avoid CI conflicts
This commit is contained in:
commit
ea3c63e023
@ -20,10 +20,7 @@ import com.typesafe.config.ConfigRenderOptions
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
import java.io.File
|
||||
import java.net.ServerSocket
|
||||
import java.net.Socket
|
||||
import java.net.SocketException
|
||||
import java.net.URLClassLoader
|
||||
import java.net.*
|
||||
import java.nio.file.Paths
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
@ -95,7 +92,13 @@ sealed class PortAllocation {
|
||||
override fun nextPort() = portCounter++
|
||||
}
|
||||
class RandomFree(): PortAllocation() {
|
||||
override fun nextPort() = ServerSocket(0).use { it.localPort }
|
||||
override fun nextPort(): Int {
|
||||
return ServerSocket().use {
|
||||
it.reuseAddress = true
|
||||
it.bind(InetSocketAddress("localhost", 0))
|
||||
it.localPort
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -179,10 +182,13 @@ private fun getTimestampAsDirectoryName(): String {
|
||||
fun addressMustBeBound(hostAndPort: HostAndPort) {
|
||||
poll("address $hostAndPort to bind") {
|
||||
try {
|
||||
Socket(hostAndPort.hostText, hostAndPort.port).close()
|
||||
Unit
|
||||
} catch (_exception: SocketException) {
|
||||
ServerSocket().use {
|
||||
it.reuseAddress = true
|
||||
it.bind(InetSocketAddress(hostAndPort.hostText, hostAndPort.port))
|
||||
}
|
||||
null
|
||||
} catch (_exception: SocketException) {
|
||||
Unit
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -190,10 +196,13 @@ fun addressMustBeBound(hostAndPort: HostAndPort) {
|
||||
fun addressMustNotBeBound(hostAndPort: HostAndPort) {
|
||||
poll("address $hostAndPort to unbind") {
|
||||
try {
|
||||
Socket(hostAndPort.hostText, hostAndPort.port).close()
|
||||
null
|
||||
} catch (_exception: SocketException) {
|
||||
ServerSocket().use {
|
||||
it.reuseAddress = true
|
||||
it.bind(InetSocketAddress(hostAndPort.hostText, hostAndPort.port))
|
||||
}
|
||||
Unit
|
||||
} catch (_exception: SocketException) {
|
||||
null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user