Skip to content

Commit 9cf414d

Browse files
fix: different approach IS#923
1 parent 3f37ccf commit 9cf414d

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

Sources/SocketForwarder/ConnectHandler.swift

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

5554
extension 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

Comments
 (0)