From 41808516c8a0d9f5d1b8bc6642748657ed36355f Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Thu, 27 Sep 2018 12:11:52 -0600 Subject: [PATCH] merge ACK and ACK_ECN into a single frame --- internal/wire/ack_frame.go | 34 +++++----- internal/wire/ack_frame_test.go | 102 ++++++++++++++--------------- internal/wire/frame_parser.go | 9 +-- internal/wire/frame_parser_test.go | 2 +- 4 files changed, 68 insertions(+), 79 deletions(-) diff --git a/internal/wire/ack_frame.go b/internal/wire/ack_frame.go index 00759db4..8eeb4001 100644 --- a/internal/wire/ack_frame.go +++ b/internal/wire/ack_frame.go @@ -19,23 +19,17 @@ type AckFrame struct { DelayTime time.Duration } -func parseAckFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame, error) { - return parseAckOrAckEcnFrame(r, false, version) -} - -func parseAckEcnFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame, error) { - return parseAckOrAckEcnFrame(r, true, version) -} - // parseAckFrame reads an ACK frame -func parseAckOrAckEcnFrame(r *bytes.Reader, ecn bool, version protocol.VersionNumber) (*AckFrame, error) { +func parseAckFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame, error) { if !version.UsesIETFFrameFormat() { return parseAckFrameLegacy(r, version) } - if _, err := r.ReadByte(); err != nil { + typeByte, err := r.ReadByte() + if err != nil { return nil, err } + ecn := typeByte&0x1 > 0 frame := &AckFrame{} @@ -50,14 +44,6 @@ func parseAckOrAckEcnFrame(r *bytes.Reader, ecn bool, version protocol.VersionNu } frame.DelayTime = time.Duration(delay*1<