Browse Source

Fix when rolled number is zero

Shelikhoo 5 years ago
parent
commit
5e59534333
2 changed files with 3 additions and 1 deletions
  1. 2 0
      common/protocol/headers.go
  2. 1 1
      proxy/vmess/encoding/server.go

+ 2 - 0
common/protocol/headers.go

@@ -38,6 +38,8 @@ const (
 	RequestOptionChunkMasking bitmask.Byte = 0x04
 	RequestOptionChunkMasking bitmask.Byte = 0x04
 
 
 	RequestOptionGlobalPadding bitmask.Byte = 0x08
 	RequestOptionGlobalPadding bitmask.Byte = 0x08
+
+	RequestOptionEarlyChecksum bitmask.Byte = 0x16
 )
 )
 
 
 type RequestHeader struct {
 type RequestHeader struct {

+ 1 - 1
proxy/vmess/encoding/server.go

@@ -126,7 +126,7 @@ func parseSecurityType(b byte) protocol.SecurityType {
 func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.RequestHeader, error) {
 func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.RequestHeader, error) {
 	buffer := buf.New()
 	buffer := buf.New()
 	behaviorRand := dice.NewDeterministicDice(int64(s.userValidator.GetBehaviorSeed()))
 	behaviorRand := dice.NewDeterministicDice(int64(s.userValidator.GetBehaviorSeed()))
-	DrainSize := behaviorRand.Roll(3266) + 16 + 38 + dice.Roll(behaviorRand.Roll(64))
+	DrainSize := behaviorRand.Roll(3266) + 16 + 38 + dice.Roll(behaviorRand.Roll(64)+1)
 	readSizeRemain := DrainSize
 	readSizeRemain := DrainSize
 
 
 	drainConnection := func(e error) error {
 	drainConnection := func(e error) error {