diff --git a/qlog/packet_header.go b/qlog/packet_header.go index 71f80fef..4ce81843 100644 --- a/qlog/packet_header.go +++ b/qlog/packet_header.go @@ -7,6 +7,7 @@ import ( "github.com/lucas-clemente/quic-go/internal/wire" ) +// PacketTypeFromHeader determines the packet type from a *wire.Header. func PacketTypeFromHeader(hdr *wire.Header) PacketType { if !hdr.IsLongHeader { return PacketType1RTT @@ -24,7 +25,7 @@ func PacketTypeFromHeader(hdr *wire.Header) PacketType { case protocol.PacketTypeRetry: return PacketTypeRetry default: - panic("unknown packet type") + return PacketTypeNotDetermined } } diff --git a/qlog/packet_header_test.go b/qlog/packet_header_test.go index d69369c3..05d11142 100644 --- a/qlog/packet_header_test.go +++ b/qlog/packet_header_test.go @@ -61,6 +61,13 @@ var _ = Describe("Packet Header", func() { It("recognizes 1-RTT packets", func() { Expect(PacketTypeFromHeader(&wire.Header{})).To(Equal(PacketType1RTT)) }) + + It("handles unrecognized packet types", func() { + Expect(PacketTypeFromHeader(&wire.Header{ + IsLongHeader: true, + Version: protocol.VersionTLS, + })).To(Equal(PacketTypeNotDetermined)) + }) }) Context("marshalling", func() {