From 8b845fada95158cc88174a6b29c8c109be003573 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Thu, 4 Aug 2016 15:45:11 +0700 Subject: [PATCH] make PublicHeader public --- packet_packer.go | 2 +- packet_unpacker.go | 2 +- packet_unpacker_test.go | 4 ++-- public_header.go | 12 ++++++------ public_header_test.go | 38 +++++++++++++++++++------------------- server.go | 4 ++-- server_test.go | 2 +- session.go | 8 ++++---- session_test.go | 10 +++++----- 9 files changed, 41 insertions(+), 41 deletions(-) diff --git a/packet_packer.go b/packet_packer.go index 69363632..63d70fc7 100644 --- a/packet_packer.go +++ b/packet_packer.go @@ -61,7 +61,7 @@ func (p *packetPacker) packPacket(stopWaitingFrame *frames.StopWaitingFrame, con defer p.cryptoSetup.UnlockForSealing() packetNumberLen := protocol.GetPacketNumberLengthForPublicHeader(currentPacketNumber, largestObserved) - responsePublicHeader := &publicHeader{ + responsePublicHeader := &PublicHeader{ ConnectionID: p.connectionID, PacketNumber: currentPacketNumber, PacketNumberLen: packetNumberLen, diff --git a/packet_unpacker.go b/packet_unpacker.go index 0e251455..ca0a8cdc 100644 --- a/packet_unpacker.go +++ b/packet_unpacker.go @@ -21,7 +21,7 @@ type packetUnpacker struct { aead crypto.AEAD } -func (u *packetUnpacker) Unpack(publicHeaderBinary []byte, hdr *publicHeader, data []byte) (*unpackedPacket, error) { +func (u *packetUnpacker) Unpack(publicHeaderBinary []byte, hdr *PublicHeader, data []byte) (*unpackedPacket, error) { data, err := u.aead.Open(data[:0], data, hdr.PacketNumber, publicHeaderBinary) if err != nil { // Wrap err in quicError so that public reset is sent by session diff --git a/packet_unpacker_test.go b/packet_unpacker_test.go index 01098bb3..121822bd 100644 --- a/packet_unpacker_test.go +++ b/packet_unpacker_test.go @@ -15,7 +15,7 @@ import ( var _ = Describe("Packet unpacker", func() { var ( unpacker *packetUnpacker - hdr *publicHeader + hdr *PublicHeader hdrBin []byte aead crypto.AEAD data []byte @@ -24,7 +24,7 @@ var _ = Describe("Packet unpacker", func() { BeforeEach(func() { aead = &crypto.NullAEAD{} - hdr = &publicHeader{ + hdr = &PublicHeader{ PacketNumber: 10, PacketNumberLen: 1, } diff --git a/public_header.go b/public_header.go index a510b719..dd384297 100644 --- a/public_header.go +++ b/public_header.go @@ -18,8 +18,8 @@ var ( errGetLengthOnlyForRegularPackets = errors.New("PublicHeader: GetLength can only be called for regular packets") ) -// The publicHeader of a QUIC packet -type publicHeader struct { +// The PublicHeader of a QUIC packet +type PublicHeader struct { Raw []byte VersionFlag bool ResetFlag bool @@ -32,7 +32,7 @@ type publicHeader struct { } // WritePublicHeader writes a public header -func (h *publicHeader) WritePublicHeader(b *bytes.Buffer, version protocol.VersionNumber) error { +func (h *PublicHeader) WritePublicHeader(b *bytes.Buffer, version protocol.VersionNumber) error { publicFlagByte := uint8(0x00) if h.VersionFlag && h.ResetFlag { return errResetAndVersionFlagSet @@ -99,8 +99,8 @@ func (h *publicHeader) WritePublicHeader(b *bytes.Buffer, version protocol.Versi } // parsePublicHeader parses a QUIC packet's public header -func parsePublicHeader(b io.ByteReader) (*publicHeader, error) { - header := &publicHeader{} +func parsePublicHeader(b io.ByteReader) (*PublicHeader, error) { + header := &PublicHeader{} // First byte publicFlagByte, err := b.ReadByte() @@ -162,7 +162,7 @@ func parsePublicHeader(b io.ByteReader) (*publicHeader, error) { // GetLength gets the length of the publicHeader in bytes // can only be called for regular packets -func (h *publicHeader) GetLength() (protocol.ByteCount, error) { +func (h *PublicHeader) GetLength() (protocol.ByteCount, error) { if h.VersionFlag || h.ResetFlag { return 0, errGetLengthOnlyForRegularPackets } diff --git a/public_header_test.go b/public_header_test.go index d0dc37c1..24e00285 100644 --- a/public_header_test.go +++ b/public_header_test.go @@ -79,7 +79,7 @@ var _ = Describe("Public Header", func() { Context("when writing", func() { It("writes a sample header", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 2, PacketNumberLen: protocol.PacketNumberLen6, @@ -90,7 +90,7 @@ var _ = Describe("Public Header", func() { It("sets the Version Flag", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ VersionFlag: true, ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 2, @@ -105,7 +105,7 @@ var _ = Describe("Public Header", func() { It("sets the Reset Flag", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ResetFlag: true, ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 2, @@ -120,7 +120,7 @@ var _ = Describe("Public Header", func() { It("throws an error if both Reset Flag and Version Flag are set", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ VersionFlag: true, ResetFlag: true, ConnectionID: 0x4cfa9f9b668619f6, @@ -133,7 +133,7 @@ var _ = Describe("Public Header", func() { It("truncates the connection ID", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, TruncateConnectionID: true, PacketNumberLen: protocol.PacketNumberLen6, @@ -146,7 +146,7 @@ var _ = Describe("Public Header", func() { It("writes proper v33 packets", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 1, PacketNumberLen: protocol.PacketNumberLen1, @@ -158,7 +158,7 @@ var _ = Describe("Public Header", func() { It("writes diversification nonces", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 1, PacketNumberLen: protocol.PacketNumberLen1, @@ -175,19 +175,19 @@ var _ = Describe("Public Header", func() { Context("GetLength", func() { It("errors when calling GetLength for Version Negotiation packets", func() { - hdr := publicHeader{VersionFlag: true} + hdr := PublicHeader{VersionFlag: true} _, err := hdr.GetLength() Expect(err).To(MatchError(errGetLengthOnlyForRegularPackets)) }) It("errors when calling GetLength for Public Reset packets", func() { - hdr := publicHeader{ResetFlag: true} + hdr := PublicHeader{ResetFlag: true} _, err := hdr.GetLength() Expect(err).To(MatchError(errGetLengthOnlyForRegularPackets)) }) It("errors when PacketNumberLen is not set", func() { - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 0xDECAFBAD, } @@ -196,7 +196,7 @@ var _ = Describe("Public Header", func() { }) It("gets the length of a packet with longest packet number length and connectionID", func() { - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 0xDECAFBAD, PacketNumberLen: protocol.PacketNumberLen6, @@ -207,7 +207,7 @@ var _ = Describe("Public Header", func() { }) It("gets the length of a packet with longest packet number length and truncated connectionID", func() { - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, TruncateConnectionID: true, PacketNumber: 0xDECAFBAD, @@ -219,7 +219,7 @@ var _ = Describe("Public Header", func() { }) It("gets the length of a packet 2 byte packet number length ", func() { - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 0xDECAFBAD, PacketNumberLen: protocol.PacketNumberLen2, @@ -230,7 +230,7 @@ var _ = Describe("Public Header", func() { }) It("works with diversification nonce", func() { - hdr := publicHeader{ + hdr := PublicHeader{ DiversificationNonce: []byte("foo"), PacketNumberLen: protocol.PacketNumberLen1, } @@ -243,7 +243,7 @@ var _ = Describe("Public Header", func() { Context("packet number length", func() { It("doesn't write a header if the packet number length is not set", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 0xDECAFBAD, } @@ -253,7 +253,7 @@ var _ = Describe("Public Header", func() { It("writes a header with a 1-byte packet number", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 0xDECAFBAD, PacketNumberLen: protocol.PacketNumberLen1, @@ -265,7 +265,7 @@ var _ = Describe("Public Header", func() { It("writes a header with a 2-byte packet number", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 0xDECAFBAD, PacketNumberLen: protocol.PacketNumberLen2, @@ -277,7 +277,7 @@ var _ = Describe("Public Header", func() { It("writes a header with a 4-byte packet number", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 0x13DECAFBAD, PacketNumberLen: protocol.PacketNumberLen4, @@ -289,7 +289,7 @@ var _ = Describe("Public Header", func() { It("writes a header with a 6-byte packet number", func() { b := &bytes.Buffer{} - hdr := publicHeader{ + hdr := PublicHeader{ ConnectionID: 0x4cfa9f9b668619f6, PacketNumber: 0xBE1337DECAFBAD, PacketNumberLen: protocol.PacketNumberLen6, diff --git a/server.go b/server.go index b7485484..f4702e72 100644 --- a/server.go +++ b/server.go @@ -16,7 +16,7 @@ import ( // packetHandler handles packets type packetHandler interface { - handlePacket(addr interface{}, hdr *publicHeader, data []byte) + handlePacket(addr interface{}, hdr *PublicHeader, data []byte) run() Close(error) error } @@ -183,7 +183,7 @@ func (s *Server) closeCallback(id protocol.ConnectionID) { func composeVersionNegotiation(connectionID protocol.ConnectionID) []byte { fullReply := &bytes.Buffer{} - responsePublicHeader := publicHeader{ + responsePublicHeader := PublicHeader{ ConnectionID: connectionID, PacketNumber: 1, VersionFlag: true, diff --git a/server_test.go b/server_test.go index efaef5b3..56e3bc7b 100644 --- a/server_test.go +++ b/server_test.go @@ -20,7 +20,7 @@ type mockSession struct { closed bool } -func (s *mockSession) handlePacket(addr interface{}, hdr *publicHeader, data []byte) { +func (s *mockSession) handlePacket(addr interface{}, hdr *PublicHeader, data []byte) { s.packetCount++ } diff --git a/session.go b/session.go index b611305b..bc455676 100644 --- a/session.go +++ b/session.go @@ -18,12 +18,12 @@ import ( ) type unpacker interface { - Unpack(publicHeaderBinary []byte, hdr *publicHeader, data []byte) (*unpackedPacket, error) + Unpack(publicHeaderBinary []byte, hdr *PublicHeader, data []byte) (*unpackedPacket, error) } type receivedPacket struct { remoteAddr interface{} - publicHeader *publicHeader + publicHeader *PublicHeader data []byte } @@ -234,7 +234,7 @@ func (s *Session) maybeResetTimer() { s.currentDeadline = nextDeadline } -func (s *Session) handlePacketImpl(remoteAddr interface{}, hdr *publicHeader, data []byte) error { +func (s *Session) handlePacketImpl(remoteAddr interface{}, hdr *PublicHeader, data []byte) error { s.lastNetworkActivityTime = time.Now() // Calculate packet number @@ -319,7 +319,7 @@ func (s *Session) handleFrames(fs []frames.Frame) error { } // handlePacket handles a packet -func (s *Session) handlePacket(remoteAddr interface{}, hdr *publicHeader, data []byte) { +func (s *Session) handlePacket(remoteAddr interface{}, hdr *PublicHeader, data []byte) { // Discard packets once the amount of queued packets is larger than // the channel size, protocol.MaxSessionUnprocessedPackets select { diff --git a/session_test.go b/session_test.go index bf5e893b..430631f0 100644 --- a/session_test.go +++ b/session_test.go @@ -39,7 +39,7 @@ func (*mockConnection) IP() net.IP { return nil } type mockUnpacker struct{} -func (m *mockUnpacker) Unpack(publicHeaderBinary []byte, hdr *publicHeader, data []byte) (*unpackedPacket, error) { +func (m *mockUnpacker) Unpack(publicHeaderBinary []byte, hdr *PublicHeader, data []byte) (*unpackedPacket, error) { return &unpackedPacket{ entropyBit: false, frames: nil, @@ -439,11 +439,11 @@ var _ = Describe("Session", func() { }) Context("receiving packets", func() { - var hdr *publicHeader + var hdr *PublicHeader BeforeEach(func() { session.unpacker = &mockUnpacker{} - hdr = &publicHeader{PacketNumberLen: protocol.PacketNumberLen6} + hdr = &PublicHeader{PacketNumberLen: protocol.PacketNumberLen6} }) It("sets the lastRcvdPacketNumber", func() { @@ -662,7 +662,7 @@ var _ = Describe("Session", func() { It("sends public reset after too many undecryptable packets", func() { // Write protocol.MaxUndecryptablePackets and expect a public reset to happen for i := 0; i < protocol.MaxUndecryptablePackets; i++ { - hdr := &publicHeader{ + hdr := &PublicHeader{ PacketNumber: protocol.PacketNumber(i + 1), } session.handlePacket(nil, hdr, []byte("foobar")) @@ -676,7 +676,7 @@ var _ = Describe("Session", func() { It("unqueues undecryptable packets for later decryption", func() { session.undecryptablePackets = []receivedPacket{{ nil, - &publicHeader{PacketNumber: protocol.PacketNumber(42)}, + &PublicHeader{PacketNumber: protocol.PacketNumber(42)}, nil, }} Expect(session.receivedPackets).NotTo(Receive())