From 7a9f9dbded135947abb5f55acdf1befbe484bc91 Mon Sep 17 00:00:00 2001 From: Nathan Brown Date: Mon, 22 Mar 2021 18:25:06 -0500 Subject: [PATCH] Don't craft buffers if we don't need them (#416) --- hostmap.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/hostmap.go b/hostmap.go index 9435f36..58d3c5d 100644 --- a/hostmap.go +++ b/hostmap.go @@ -599,12 +599,19 @@ func (i *HostInfo) handshakeComplete() { //TODO: this should be managed by the handshake state machine to set it based on how many handshake were seen. // Clamping it to 2 gets us out of the woods for now atomic.StoreUint64(&i.ConnectionState.atomicMessageCounter, 2) - i.logger().Debugf("Sending %d stored packets", len(i.packetStore)) - nb := make([]byte, 12, 12) - out := make([]byte, mtu) - for _, cp := range i.packetStore { - cp.callback(cp.messageType, cp.messageSubType, i, cp.packet, nb, out) + + if l.Level >= logrus.DebugLevel { + i.logger().Debugf("Sending %d stored packets", len(i.packetStore)) } + + if len(i.packetStore) > 0 { + nb := make([]byte, 12, 12) + out := make([]byte, mtu) + for _, cp := range i.packetStore { + cp.callback(cp.messageType, cp.messageSubType, i, cp.packet, nb, out) + } + } + i.packetStore = make([]*cachedPacket, 0) i.ConnectionState.ready = true i.ConnectionState.queueLock.Unlock()