From 3f0cfc4c452af77f57385398294ab1eecca4c8bf Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Thu, 9 Apr 2026 19:30:17 +0300 Subject: [PATCH] feat(mux): Add verbose logging for out-of-order packet handling --- internal/mux/mux.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/mux/mux.go b/internal/mux/mux.go index 9bdaa62..710c43d 100644 --- a/internal/mux/mux.go +++ b/internal/mux/mux.go @@ -67,8 +67,10 @@ func (m *Multiplexer) OpenStream() uint16 { if _, exists := m.streams[sid]; !exists { m.streams[sid] = &Stream{ - ID: sid, - recvBuf: make([]byte, 0), + ID: sid, + recvBuf: make([]byte, 0), + nextSeq: 0, + outOfOrder: make(map[uint32][]byte), } return sid } @@ -231,6 +233,7 @@ func (m *Multiplexer) HandleFrame(frame []byte) { stream.recvBuf = append(stream.recvBuf, nextData...) delete(stream.outOfOrder, stream.nextSeq) stream.nextSeq++ + logger.Verbose("Applied out-of-order packet sid=%d seq=%d", sid, stream.nextSeq-1) } else { break } @@ -247,7 +250,10 @@ func (m *Multiplexer) HandleFrame(frame []byte) { } else if seq > stream.nextSeq { if len(stream.outOfOrder) < 100 { stream.outOfOrder[seq] = append([]byte(nil), data...) + logger.Verbose("Buffered out-of-order packet sid=%d seq=%d (expected %d)", sid, seq, stream.nextSeq) } + } else { + logger.Verbose("Dropped duplicate packet sid=%d seq=%d (expected %d)", sid, seq, stream.nextSeq) } }