diff --git a/proxy/vmess/outbound/outbound.go b/proxy/vmess/outbound/outbound.go index 65de77fad..71d973d38 100644 --- a/proxy/vmess/outbound/outbound.go +++ b/proxy/vmess/outbound/outbound.go @@ -87,10 +87,6 @@ func (v *Handler) Process(ctx context.Context, link *core.Link, dialer proxy.Dia Option: protocol.RequestOptionChunkStream, } - if enablePadding { - request.Option.Set(protocol.RequestOptionGlobalPadding) - } - rawAccount, err := request.User.GetTypedAccount() if err != nil { return newError("failed to get user account").Base(err).AtWarning() @@ -102,6 +98,10 @@ func (v *Handler) Process(ctx context.Context, link *core.Link, dialer proxy.Dia request.Option.Set(protocol.RequestOptionChunkMasking) } + if enablePadding && request.Option.Has(protocol.RequestOptionChunkMasking) { + request.Option.Set(protocol.RequestOptionGlobalPadding) + } + input := link.Reader output := link.Writer