diff --git a/pkg/plugin/client/tls2raw.go b/pkg/plugin/client/tls2raw.go index ccb75149..6ce05420 100644 --- a/pkg/plugin/client/tls2raw.go +++ b/pkg/plugin/client/tls2raw.go @@ -72,6 +72,15 @@ func (p *TLS2RawPlugin) Handle(ctx context.Context, connInfo *ConnectionInfo) { return } + if connInfo.ProxyProtocolHeader != nil { + if _, err := connInfo.ProxyProtocolHeader.WriteTo(rawConn); err != nil { + xl.Warnf("tls2raw write proxy protocol header to local conn error: %v", err) + rawConn.Close() + tlsConn.Close() + return + } + } + libio.Join(tlsConn, rawConn) }