diff --git a/session.go b/session.go index e7e67183..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 { @@ -704,9 +701,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) } @@ -716,11 +710,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) } }