From cc0944139b9ef48ec59e02bf167cba7eb802e646 Mon Sep 17 00:00:00 2001 From: xtaci Date: Sun, 28 Jul 2024 01:02:18 +0800 Subject: [PATCH] fix recycle --- sess.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sess.go b/sess.go index 0235bc7c..cd9b147d 100644 --- a/sess.go +++ b/sess.go @@ -625,19 +625,25 @@ func (s *UDPSession) postProcess() { // 4. TxQueue var msg ipv4.Message - for i := 0; i < s.dup+1; i++ { + msg.Addr = s.remote + + // original copy, move buf to txqueue directly + msg.Buffers = [][]byte{buf} + txqueue = append(txqueue, msg) + + // dup copies for testing if set + for i := 0; i < s.dup; i++ { bts := xmitBuf.Get().([]byte)[:len(buf)] copy(bts, buf) msg.Buffers = [][]byte{bts} - msg.Addr = s.remote txqueue = append(txqueue, msg) } + // parity for k := range ecc { bts := xmitBuf.Get().([]byte)[:len(ecc[k])] copy(bts, ecc[k]) msg.Buffers = [][]byte{bts} - msg.Addr = s.remote txqueue = append(txqueue, msg) }