From 6973d716972f12eedffb38aea17462e724f48fc7 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Mon, 10 Jul 2017 20:41:03 +0800 Subject: [PATCH 1/3] remove unneeded if statement in session.logPacket --- session.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/session.go b/session.go index e7e67183..0ed50381 100644 --- a/session.go +++ b/session.go @@ -716,11 +716,9 @@ func (s *session) logPacket(packet *packedPacket) { // We don't need to allocate the slices for calling the format functions return } - if utils.Debug() { - utils.Debugf("-> Sending packet 0x%x (%d bytes) for connection %x, %s", packet.number, len(packet.raw), s.connectionID, packet.encryptionLevel) - for _, frame := range packet.frames { - frames.LogFrame(frame, true) - } + utils.Debugf("-> Sending packet 0x%x (%d bytes) for connection %x, %s", packet.number, len(packet.raw), s.connectionID, packet.encryptionLevel) + for _, frame := range packet.frames { + frames.LogFrame(frame, true) } } From 1d120f5ea1f7fbffe0142c0adbe743366802f43d Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Mon, 10 Jul 2017 21:10:47 +0800 Subject: [PATCH 2/3] remove unneeded check for nil packets in session.sendConnectionClose This was needed when logic in the packet packer was a lot more complicated. Now that packing a CONNECTION_CLOSE is a separate code path, this check isn't needed anymore. --- session.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/session.go b/session.go index 0ed50381..299a538b 100644 --- a/session.go +++ b/session.go @@ -704,9 +704,6 @@ func (s *session) sendConnectionClose(quicErr *qerr.QuicError) error { if err != nil { return err } - if packet == nil { - return errors.New("Session BUG: expected packet not to be nil") - } s.logPacket(packet) return s.conn.Write(packet.raw) } From 4898f4205cf98df826f7e4d703e3c652864a42de Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Mon, 10 Jul 2017 21:11:35 +0800 Subject: [PATCH 3/3] properly put back the packet buffer when sending a packet fails --- session.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/session.go b/session.go index 299a538b..0569df0c 100644 --- a/session.go +++ b/session.go @@ -678,6 +678,7 @@ func (s *session) sendPacket() error { } func (s *session) sendPackedPacket(packet *packedPacket) error { + defer putPacketBuffer(packet.raw) err := s.sentPacketHandler.SentPacket(&ackhandler.Packet{ PacketNumber: packet.number, Frames: packet.frames, @@ -687,12 +688,8 @@ func (s *session) sendPackedPacket(packet *packedPacket) error { if err != nil { return err } - s.logPacket(packet) - - err = s.conn.Write(packet.raw) - putPacketBuffer(packet.raw) - return err + return s.conn.Write(packet.raw) } func (s *session) sendConnectionClose(quicErr *qerr.QuicError) error {