Close target when client closed

This commit is contained in:
风扇滑翔翼
2025-11-16 12:55:10 -05:00
committed by yuhan6665
parent e4eec45205
commit cd53f7d502
+11 -1
View File
@@ -272,7 +272,17 @@ func Server(ctx context.Context, conn net.Conn, config *Config) (*Conn, error) {
if config.Show && hs.clientHello != nil {
fmt.Printf("REALITY remoteAddr: %v\tforwarded SNI: %v\n", remoteAddr, hs.clientHello.serverName)
}
io.Copy(target, NewRatelimitedConn(underlying, &config.LimitFallbackUpload))
_, err := io.Copy(target, NewRatelimitedConn(underlying, &config.LimitFallbackUpload))
// close target writer when received FIN (err==nil)
if err == nil {
targetWriterCloser, ok := target.(CloseWriteConn)
if ok {
targetWriterCloser.CloseWrite()
}
} else {
// Close target when encountering RST (or any other errors)
target.Close()
}
}
waitGroup.Done()
}()