forked from quic-go/quic-go
replace AckFrame.HasNack by method
This commit is contained in:
@@ -14,7 +14,6 @@ type AckFrame struct {
|
||||
Entropy byte
|
||||
LargestObserved protocol.PacketNumber
|
||||
DelayTime uint16 // Todo: properly interpret this value as described in the specification
|
||||
HasNACK bool
|
||||
NackRanges []*ackhandler.NackRange
|
||||
}
|
||||
|
||||
@@ -31,6 +30,14 @@ func (f *AckFrame) Write(b *bytes.Buffer) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// HasNACK returns if the frame has NACK ranges
|
||||
func (f *AckFrame) HasNACK() bool {
|
||||
if len(f.NackRanges) > 0 {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// ParseAckFrame reads an ACK frame
|
||||
func ParseAckFrame(r *bytes.Reader) (*AckFrame, error) {
|
||||
frame := &AckFrame{}
|
||||
@@ -40,9 +47,9 @@ func ParseAckFrame(r *bytes.Reader) (*AckFrame, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
frame.HasNACK = false
|
||||
hasNACK := false
|
||||
if typeByte&0x20 == 0x20 {
|
||||
frame.HasNACK = true
|
||||
hasNACK = true
|
||||
}
|
||||
if typeByte&0x10 == 0x10 {
|
||||
panic("truncated ACKs not yet implemented.")
|
||||
@@ -105,7 +112,7 @@ func ParseAckFrame(r *bytes.Reader) (*AckFrame, error) {
|
||||
}
|
||||
}
|
||||
|
||||
if frame.HasNACK {
|
||||
if hasNACK {
|
||||
var numRanges uint8
|
||||
numRanges, err = r.ReadByte()
|
||||
if err != nil {
|
||||
|
||||
@@ -17,7 +17,7 @@ var _ = Describe("AckFrame", func() {
|
||||
Expect(frame.Entropy).To(Equal(byte(0xA4)))
|
||||
Expect(frame.LargestObserved).To(Equal(protocol.PacketNumber(0x03)))
|
||||
Expect(frame.DelayTime).To(Equal(uint16(0x4523)))
|
||||
Expect(frame.HasNACK).To(Equal(false))
|
||||
Expect(frame.HasNACK()).To(Equal(false))
|
||||
Expect(b.Len()).To(Equal(0))
|
||||
})
|
||||
|
||||
@@ -40,7 +40,7 @@ var _ = Describe("AckFrame", func() {
|
||||
b := bytes.NewReader([]byte{0x60, 0x8, 0x3, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x1, 0x1, 0x1})
|
||||
frame, err := ParseAckFrame(b)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.HasNACK).To(Equal(true))
|
||||
Expect(frame.HasNACK()).To(Equal(true))
|
||||
Expect(len(frame.NackRanges)).To(Equal(1))
|
||||
Expect(frame.NackRanges[0].FirstPacketNumber).To(Equal(protocol.PacketNumber(1)))
|
||||
Expect(frame.NackRanges[0].Length).To(Equal(uint8(2)))
|
||||
@@ -50,7 +50,7 @@ var _ = Describe("AckFrame", func() {
|
||||
b := bytes.NewReader([]byte{0x60, 0x2, 0xf, 0xb8, 0x1, 0x1, 0x0, 0xe5, 0x58, 0x4, 0x0, 0x3, 0x1, 0x6, 0x1, 0x2, 0x1, 0x0})
|
||||
frame, err := ParseAckFrame(b)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.HasNACK).To(Equal(true))
|
||||
Expect(frame.HasNACK()).To(Equal(true))
|
||||
Expect(len(frame.NackRanges)).To(Equal(3))
|
||||
Expect(frame.NackRanges[0].FirstPacketNumber).To(Equal(protocol.PacketNumber(8)))
|
||||
Expect(frame.NackRanges[0].Length).To(Equal(uint8(7)))
|
||||
|
||||
Reference in New Issue
Block a user