Added internal closeBlocking
This commit is contained in:
parent
d734c2555a
commit
4a0357d92b
@ -339,6 +339,13 @@ open class Connection(connectionParameters: ConnectionParams<*>) {
|
|||||||
close(true)
|
close(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal fun closeBlocking() {
|
||||||
|
runBlocking {
|
||||||
|
close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Closes the connection, and removes all connection specific listeners
|
* Closes the connection, and removes all connection specific listeners
|
||||||
*/
|
*/
|
||||||
|
@ -55,9 +55,7 @@ internal class ServerHandshake<CONNECTION : Connection>(private val logger: KLog
|
|||||||
.expirationListener<Long, CONNECTION> { clientConnectKey, connection ->
|
.expirationListener<Long, CONNECTION> { clientConnectKey, connection ->
|
||||||
// this blocks until it fully runs (which is ok. this is fast)
|
// this blocks until it fully runs (which is ok. this is fast)
|
||||||
logger.error { "[${clientConnectKey} Connection (${connection.id}) Timed out waiting for registration response from client" }
|
logger.error { "[${clientConnectKey} Connection (${connection.id}) Timed out waiting for registration response from client" }
|
||||||
runBlocking {
|
connection.closeBlocking()
|
||||||
connection.close()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.build<Long, CONNECTION>()
|
.build<Long, CONNECTION>()
|
||||||
|
|
||||||
@ -435,6 +433,7 @@ internal class ServerHandshake<CONNECTION : Connection>(private val logger: KLog
|
|||||||
|
|
||||||
|
|
||||||
// create a new connection. The session ID is encrypted.
|
// create a new connection. The session ID is encrypted.
|
||||||
|
var connection: CONNECTION? = null
|
||||||
try {
|
try {
|
||||||
// connection timeout of 0 doesn't matter. it is not used by the server
|
// connection timeout of 0 doesn't matter. it is not used by the server
|
||||||
// the client address WILL BE either IPv4 or IPv6
|
// the client address WILL BE either IPv4 or IPv6
|
||||||
@ -460,7 +459,7 @@ internal class ServerHandshake<CONNECTION : Connection>(private val logger: KLog
|
|||||||
|
|
||||||
logger.info { "Creating new connection from $clientConnection" }
|
logger.info { "Creating new connection from $clientConnection" }
|
||||||
|
|
||||||
val connection = connectionFunc(ConnectionParams(server, clientConnection, validateRemoteAddress))
|
connection = connectionFunc(ConnectionParams(server, clientConnection, validateRemoteAddress))
|
||||||
|
|
||||||
// VALIDATE:: are we allowed to connect to this server (now that we have the initial server information)
|
// VALIDATE:: are we allowed to connect to this server (now that we have the initial server information)
|
||||||
val permitConnection = listenerManager.notifyFilter(connection)
|
val permitConnection = listenerManager.notifyFilter(connection)
|
||||||
@ -469,6 +468,7 @@ internal class ServerHandshake<CONNECTION : Connection>(private val logger: KLog
|
|||||||
connectionsPerIpCounts.decrementSlow(clientAddress)
|
connectionsPerIpCounts.decrementSlow(clientAddress)
|
||||||
sessionIdAllocator.free(connectionSessionId)
|
sessionIdAllocator.free(connectionSessionId)
|
||||||
streamIdAllocator.free(connectionStreamId)
|
streamIdAllocator.free(connectionStreamId)
|
||||||
|
connection.closeBlocking()
|
||||||
|
|
||||||
logger.error { "Connection $clientAddressString was not permitted!" }
|
logger.error { "Connection $clientAddressString was not permitted!" }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user