Fix wrapping bug

This commit is contained in:
Qian Wang 2019-01-20 17:23:45 +00:00
parent 9793537034
commit 46c8bc24de

View File

@ -97,11 +97,11 @@ func (s *Stream) recvNewFrame() {
// wrapMode is true when the latest seq is wrapped but nextN is not // wrapMode is true when the latest seq is wrapped but nextN is not
s.wrapMode = true s.wrapMode = true
} }
fs.trueSeq = uint64(1<<16*(s.rev+1)) + uint64(f.Seq) + 1 fs.trueSeq = uint64(1<<32*(s.rev+1)) + uint64(f.Seq) + 1
// +1 because wrapped 0 should have trueSeq of 256 instead of 255 // +1 because wrapped 0 should have trueSeq of 256 instead of 255
// when this bit was run on 1, the trueSeq of 1 would become 256 // when this bit was run on 1, the trueSeq of 1 would become 256
} else { } else {
fs.trueSeq = uint64(1<<16*s.rev) + uint64(f.Seq) fs.trueSeq = uint64(1<<32*s.rev) + uint64(f.Seq)
// when this bit was run on 255, the trueSeq of 255 would be 255 // when this bit was run on 255, the trueSeq of 255 would be 255
} }