From 543c7998a72ad3514ffe18e6b2f3130d6418c07a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sat, 25 Sep 2021 21:37:36 +0800 Subject: [PATCH] Send shadowsocks handshake with payload if available --- proxy/shadowsocks/client.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/proxy/shadowsocks/client.go b/proxy/shadowsocks/client.go index 0a3aad40784..88ccb57ccda 100644 --- a/proxy/shadowsocks/client.go +++ b/proxy/shadowsocks/client.go @@ -5,6 +5,7 @@ package shadowsocks import ( "context" + "time" core "github.com/v2fly/v2ray-core/v4" "github.com/v2fly/v2ray-core/v4/common" @@ -108,6 +109,10 @@ func (c *Client) Process(ctx context.Context, link *transport.Link, dialer inter return newError("failed to write request").Base(err) } + if err = buf.CopyOnceTimeout(link.Reader, bodyWriter, time.Millisecond*100); err != nil && err != buf.ErrNotTimeoutReader && err != buf.ErrReadTimeout { + return newError("failed to write A request payload").Base(err).AtWarning() + } + if err := bufferedWriter.SetBuffered(false); err != nil { return err }