From 34c13f3b27b9d514ac796ec6cca62eaad9febedf Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Tue, 2 Jun 2020 18:18:31 +0800 Subject: [PATCH] Detailed code and output --- proxy/vmess/encoding/server.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/proxy/vmess/encoding/server.go b/proxy/vmess/encoding/server.go index 318326a5e..1e36fc24f 100644 --- a/proxy/vmess/encoding/server.go +++ b/proxy/vmess/encoding/server.go @@ -126,7 +126,10 @@ func parseSecurityType(b byte) protocol.SecurityType { func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.RequestHeader, error) { buffer := buf.New() behaviorRand := dice.NewDeterministicDice(int64(s.userValidator.GetBehaviorSeed())) - DrainSize := behaviorRand.Roll(3266) + 16 + 38 + dice.Roll(behaviorRand.Roll(64)+1) + BaseDrainSize := behaviorRand.Roll(3266) + RandDrainMax := behaviorRand.Roll(64) + 1 + RandDrainRolled := dice.Roll(RandDrainMax) + DrainSize := BaseDrainSize + 16 + 38 + RandDrainRolled readSizeRemain := DrainSize drainConnection := func(e error) error { @@ -135,9 +138,9 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request if readSizeRemain > 0 { err := s.DrainConnN(reader, readSizeRemain) if err != nil { - return newError("failed to drain connection").Base(err).Base(e) + return newError("failed to drain connection DrainSize = ", BaseDrainSize, " ", RandDrainMax, " ", RandDrainRolled).Base(err).Base(e) } - return newError("connection drained DrainSize = ", DrainSize).Base(e) + return newError("connection drained DrainSize = ", BaseDrainSize, " ", RandDrainMax, " ", RandDrainRolled).Base(e) } return e }