From 9c5a1cce0e1aa9539fcd6a8dab206260ebb9d318 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Sun, 19 Jun 2016 18:53:04 +0700 Subject: [PATCH] add method to get highest in order ACKed packet number to new ACK frame --- frames/ack_frame_new.go | 8 ++++++++ frames/ack_frame_new_test.go | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/frames/ack_frame_new.go b/frames/ack_frame_new.go index 7e211b80..c52cf542 100644 --- a/frames/ack_frame_new.go +++ b/frames/ack_frame_new.go @@ -179,3 +179,11 @@ func (f *AckFrameNew) HasNACK() bool { } return false } + +// GetHighestInOrderPacketNumber gets the highest in order packet number that is confirmed by this ACK +func (f *AckFrameNew) GetHighestInOrderPacketNumber() protocol.PacketNumber { + if f.HasNACK() { + panic("NACKs not yet implemented") + } + return f.LargestObserved +} diff --git a/frames/ack_frame_new_test.go b/frames/ack_frame_new_test.go index 9564cc17..98d0d2a9 100644 --- a/frames/ack_frame_new_test.go +++ b/frames/ack_frame_new_test.go @@ -62,6 +62,16 @@ var _ = Describe("AckFrame", func() { }) }) + Context("highest in order packet number", func() { + It("gets the hightest in order packet number for a simple ACK", func() { + frame := &AckFrameNew{ + LargestObserved: 0x1337, + } + Expect(frame.GetHighestInOrderPacketNumber()).To(Equal(protocol.PacketNumber(0x1337))) + }) + + }) + Context("self-consistency checks", func() { var b *bytes.Buffer BeforeEach(func() {