diff --git a/internal/wire/connection_close_frame.go b/internal/wire/connection_close_frame.go index 9a11a34c6..9d59f370e 100644 --- a/internal/wire/connection_close_frame.go +++ b/internal/wire/connection_close_frame.go @@ -62,7 +62,7 @@ func parseConnectionCloseFrame(r *bytes.Reader, version protocol.VersionNumber) func (f *ConnectionCloseFrame) Length(version protocol.VersionNumber) protocol.ByteCount { length := 1 + utils.VarIntLen(uint64(f.ErrorCode)) + utils.VarIntLen(uint64(len(f.ReasonPhrase))) + protocol.ByteCount(len(f.ReasonPhrase)) if !f.IsApplicationError { - length++ // for the frame type + length += utils.VarIntLen(f.FrameType) // for the frame type } return length } diff --git a/internal/wire/connection_close_frame_test.go b/internal/wire/connection_close_frame_test.go index 0fbb3629b..517b2f842 100644 --- a/internal/wire/connection_close_frame_test.go +++ b/internal/wire/connection_close_frame_test.go @@ -132,6 +132,7 @@ var _ = Describe("CONNECTION_CLOSE Frame", func() { b := &bytes.Buffer{} f := &ConnectionCloseFrame{ ErrorCode: 0xcafe, + FrameType: 0xdeadbeef, ReasonPhrase: "foobar", } Expect(f.Write(b, versionIETFFrames)).To(Succeed())