Merge pull request #3051 from q191201771/merge-packet-number-ranges

refactor merge packet number ranges
This commit is contained in:
Marten Seemann
2021-02-24 13:37:11 +08:00
committed by GitHub

View File

@@ -44,23 +44,19 @@ func (h *receivedPacketHistory) addToRanges(p protocol.PacketNumber) bool /* is
return false
}
var rangeExtended bool
if el.Value.End == p-1 { // extend a range at the end
rangeExtended = true
el.Value.End = p
} else if el.Value.Start == p+1 { // extend a range at the beginning
rangeExtended = true
el.Value.Start = p
return true
}
if el.Value.Start == p+1 { // extend a range at the beginning
el.Value.Start = p
// if a range was extended (either at the beginning or at the end, maybe it is possible to merge two ranges into one)
if rangeExtended {
prev := el.Prev()
if prev != nil && prev.Value.End+1 == el.Value.Start { // merge two ranges
prev.Value.End = el.Value.End
h.ranges.Remove(el)
}
return true // if the two ranges were not merge, we're done here
return true
}
// create a new range at the end