set capture time for every packet, so long living readers would be accurate (#1043)

This commit is contained in:
David Levanon 2022-04-26 14:37:44 +03:00 committed by GitHub
parent fadd052f02
commit b5c665b602
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 5 deletions

View File

@ -131,6 +131,7 @@ func (p *tlsPoller) handleTlsChunk(chunk *tlsChunk, extension *api.Extension,
p.readers[key] = reader p.readers[key] = reader
} }
reader.timer.CaptureTime = time.Now()
reader.chunks <- chunk reader.chunks <- chunk
if os.Getenv("MIZU_VERBOSE_TLS_TAPPER") == "true" { if os.Getenv("MIZU_VERBOSE_TLS_TAPPER") == "true" {
@ -150,6 +151,9 @@ func (p *tlsPoller) startNewTlsReader(chunk *tlsChunk, ip net.IP, port uint16, k
p.closeReader(key, r) p.closeReader(key, r)
}, },
progress: &api.ReadProgress{}, progress: &api.ReadProgress{},
timer: api.SuperTimer{
CaptureTime: time.Now(),
},
} }
tcpid := p.buildTcpId(chunk, ip, port) tcpid := p.buildTcpId(chunk, ip, port)
@ -166,13 +170,9 @@ func (p *tlsPoller) startNewTlsReader(chunk *tlsChunk, ip net.IP, port uint16, k
func dissect(extension *api.Extension, reader *tlsReader, isRequest bool, tcpid *api.TcpID, func dissect(extension *api.Extension, reader *tlsReader, isRequest bool, tcpid *api.TcpID,
tlsEmitter *tlsEmitter, options *api.TrafficFilteringOptions, reqResMatcher api.RequestResponseMatcher) { tlsEmitter *tlsEmitter, options *api.TrafficFilteringOptions, reqResMatcher api.RequestResponseMatcher) {
b := bufio.NewReader(reader) b := bufio.NewReader(reader)
timer := api.SuperTimer{
CaptureTime: time.Now(),
}
err := extension.Dissector.Dissect(b, reader.progress, api.Ebpf, isRequest, tcpid, &api.CounterPair{}, err := extension.Dissector.Dissect(b, reader.progress, api.Ebpf, isRequest, tcpid, &api.CounterPair{},
&timer, &api.SuperIdentifier{}, tlsEmitter, options, reqResMatcher) &reader.timer, &api.SuperIdentifier{}, tlsEmitter, options, reqResMatcher)
if err != nil { if err != nil {
logger.Log.Warningf("Error dissecting TLS %v - %v", tcpid, err) logger.Log.Warningf("Error dissecting TLS %v - %v", tcpid, err)

View File

@ -13,6 +13,7 @@ type tlsReader struct {
data []byte data []byte
doneHandler func(r *tlsReader) doneHandler func(r *tlsReader)
progress *api.ReadProgress progress *api.ReadProgress
timer api.SuperTimer
} }
func (r *tlsReader) Read(p []byte) (int, error) { func (r *tlsReader) Read(p []byte) (int, error) {