From 10b08317f7bc9fee5d1674156aad087768c6d6c8 Mon Sep 17 00:00:00 2001 From: "M. Mert Yildiran" Date: Wed, 25 Aug 2021 17:59:08 +0300 Subject: [PATCH] Learn `isClient` from the TCP stream --- tap/tcp_reader.go | 8 +++----- tap/tcp_stream_factory.go | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/tap/tcp_reader.go b/tap/tcp_reader.go index 687e9c317..1cc7be82f 100644 --- a/tap/tcp_reader.go +++ b/tap/tcp_reader.go @@ -91,7 +91,7 @@ func (h *tcpReader) Read(p []byte) (int, error) { return l, nil } -func (h *tcpReader) run(wg *sync.WaitGroup) { +func (h *tcpReader) run(wg *sync.WaitGroup, isClient bool) { defer wg.Done() data, err := io.ReadAll(h) @@ -102,9 +102,7 @@ func (h *tcpReader) run(wg *sync.WaitGroup) { r := bytes.NewReader(data) for _, extension := range extensions { - for _, isClient := range []bool{true, false} { - r.Reset(data) - extension.Dissector.Dissect(bufio.NewReader(r), isClient, h.tcpID, h.Emitter) - } + r.Reset(data) + extension.Dissector.Dissect(bufio.NewReader(r), isClient, h.tcpID, h.Emitter) } } diff --git a/tap/tcp_stream_factory.go b/tap/tcp_stream_factory.go index 1e0ef4946..9fe849482 100644 --- a/tap/tcp_stream_factory.go +++ b/tap/tcp_stream_factory.go @@ -82,8 +82,8 @@ func (factory *tcpStreamFactory) New(net, transport gopacket.Flow, tcp *layers.T } factory.wg.Add(2) // Start reading from channel stream.reader.bytes - go stream.client.run(&factory.wg) - go stream.server.run(&factory.wg) + go stream.client.run(&factory.wg, true) + go stream.server.run(&factory.wg, false) } return stream }