replace AckFrame.HasNack by method

This commit is contained in:
Marten Seemann
2016-04-20 11:45:00 +07:00
parent 1260faba4a
commit daa0fe86bd
2 changed files with 14 additions and 7 deletions

View File

@@ -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 {

View File

@@ -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)))