diff --git a/packet_packer.go b/packet_packer.go index ebaaa44a..a39a5a3a 100644 --- a/packet_packer.go +++ b/packet_packer.go @@ -366,8 +366,9 @@ func (p *packetPacker) writeAndSealPacket( buffer.Write(bytes.Repeat([]byte{0}, paddingLen)) } } - if protocol.ByteCount(buffer.Len()+sealer.Overhead()) > protocol.MaxPacketSize { - return nil, errors.New("PacketPacker BUG: packet too large") + + if size := protocol.ByteCount(buffer.Len() + sealer.Overhead()); size > protocol.MaxPacketSize { + return nil, fmt.Errorf("PacketPacker BUG: packet too large (%d bytes, allowed %d bytes)", size, protocol.MaxPacketSize) } raw = raw[0:buffer.Len()] diff --git a/packet_packer_test.go b/packet_packer_test.go index 537a2937..034ed8fe 100644 --- a/packet_packer_test.go +++ b/packet_packer_test.go @@ -679,7 +679,8 @@ var _ = Describe("Packet packer", func() { }, } _, err := packer.PackHandshakeRetransmission(packet) - Expect(err).To(MatchError("PacketPacker BUG: packet too large")) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("PacketPacker BUG: packet too large")) }) It("pads Initial packets to the required minimum packet size", func() {