@@ -22,7 +22,6 @@ final class ConnectHandler {
2222 private var pendingBytes : [ NIOAny ]
2323 private let serverAddress : SocketAddress
2424 private var log : Logger ? = nil
25- private var removed = false
2625
2726 init ( serverAddress: SocketAddress , log: Logger ? ) {
2827 self . pendingBytes = [ ]
@@ -54,7 +53,6 @@ extension ConnectHandler: ChannelInboundHandler {
5453
5554extension ConnectHandler : RemovableChannelHandler {
5655 func removeHandler( context: ChannelHandlerContext , removalToken: ChannelHandlerContext . RemovalToken ) {
57- self . removed = true
5856 var didRead = false
5957
6058 // We are being removed, and need to deliver any pending bytes we may have if we're upgrading.
@@ -81,15 +79,13 @@ extension ConnectHandler {
8179 . connect ( to: serverAddress)
8280 . assumeIsolatedUnsafeUnchecked ( )
8381 . whenComplete { result in
84- guard !self . removed else {
85- if case . success( let channel) = result {
86- channel. close ( promise: nil )
87- }
88- return
89- }
90-
9182 switch result {
9283 case . success( let channel) :
84+ guard context. channel. isActive else {
85+ self . log? . trace ( " backend - frontend channel closed, closing backend connection " )
86+ channel. close ( promise: nil )
87+ return
88+ }
9389 self . log? . trace ( " backend - connected " )
9490 self . glue ( channel, context: context)
9591 case . failure( let error) :
0 commit comments