diff --git a/tap/api/api.go b/tap/api/api.go index 5b2b3ae4d..1e3d86e8e 100644 --- a/tap/api/api.go +++ b/tap/api/api.go @@ -429,6 +429,7 @@ type TcpReader interface { GetExtension() *Extension SetTcpID(tcpID *TcpID) SetCaptureTime(captureTime time.Time) + SetEmitter(emitter Emitter) } type TcpStream interface { diff --git a/tap/tcp/tcp_reader.go b/tap/tcp/tcp_reader.go index b69ffeb54..d19ebe9d6 100644 --- a/tap/tcp/tcp_reader.go +++ b/tap/tcp/tcp_reader.go @@ -155,3 +155,7 @@ func (reader *tcpReader) SetTcpID(tcpID *api.TcpID) { func (reader *tcpReader) SetCaptureTime(captureTime time.Time) { reader.captureTime = captureTime } + +func (reader *tcpReader) SetEmitter(emitter api.Emitter) { + reader.emitter = emitter +} diff --git a/tap/tlstapper/tls_poller.go b/tap/tlstapper/tls_poller.go index 87963dac0..b54c0a801 100644 --- a/tap/tlstapper/tls_poller.go +++ b/tap/tlstapper/tls_poller.go @@ -173,17 +173,17 @@ func (p *tlsPoller) startNewTlsReader(chunk *tlsChunk, ip net.IP, port uint16, k tcpid := p.buildTcpId(chunk, ip, port) tcpReader.SetTcpID(&tcpid) - tlsEmitter := &tlsEmitter{ + tcpReader.SetEmitter(&tlsEmitter{ delegate: tcpReader.GetEmitter(), namespace: p.getNamespace(chunk.Pid), - } + }) - go dissect(extension, reader, tcpReader, tlsEmitter, options) + go dissect(extension, reader, tcpReader, options) return reader } func dissect(extension *api.Extension, reader *tlsReader, tcpReader api.TcpReader, - tlsEmitter *tlsEmitter, options *shared.TrafficFilteringOptions) { + options *shared.TrafficFilteringOptions) { b := bufio.NewReader(reader) err := extension.Dissector.Dissect(b, tcpReader, options)