From c86249adb390f23cb395cda7a7e15f57283d30d6 Mon Sep 17 00:00:00 2001 From: Denis Rekalov Date: Fri, 24 Apr 2020 13:59:19 +0100 Subject: [PATCH] ENT-5222: Prevent from blocking further connections after transport failure on TLS handshake --- .../internal/protonwrapper/netty/AMQPChannelHandler.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/protonwrapper/netty/AMQPChannelHandler.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/protonwrapper/netty/AMQPChannelHandler.kt index 904c2f9c4d..c26aa74ada 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/protonwrapper/netty/AMQPChannelHandler.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/protonwrapper/netty/AMQPChannelHandler.kt @@ -65,7 +65,7 @@ internal class AMQPChannelHandler(private val serverMode: Boolean, val oldMDC = MDC.getCopyOfContextMap() ?: emptyMap() try { MDC.put("serverMode", serverMode.toString()) - MDC.put("remoteAddress", remoteAddress.toString()) + MDC.put("remoteAddress", if (::remoteAddress.isInitialized) remoteAddress.toString() else null) MDC.put("localCert", localCert?.subjectDN?.toString()) MDC.put("remoteCert", remoteCert?.subjectDN?.toString()) MDC.put("allowedRemoteLegalNames", allowedRemoteLegalNames?.joinToString(separator = ";") { it.toString() }) @@ -299,6 +299,8 @@ internal class AMQPChannelHandler(private val serverMode: Boolean, cause is SSLException && cause.message == "handshake timed out" -> logWarnWithMDC("SSL Handshake timed out") cause is SSLException && (cause.message?.contains("close_notify") == true) -> logWarnWithMDC("Received close_notify during handshake") + // io.netty.handler.ssl.SslHandler.setHandshakeFailureTransportFailure() + cause is SSLException && (cause.message?.contains("writing TLS control frames") == true) -> logWarnWithMDC(cause.message!!) else -> badCert = true }