mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-09-10 06:50:54 +00:00
Make tlsPoller
implement TcpStream
interface and remove the call to NewTcpStreamDummy
method
This commit is contained in:
@@ -19,7 +19,6 @@ import (
|
|||||||
"github.com/up9inc/mizu/shared"
|
"github.com/up9inc/mizu/shared"
|
||||||
"github.com/up9inc/mizu/shared/logger"
|
"github.com/up9inc/mizu/shared/logger"
|
||||||
"github.com/up9inc/mizu/tap/api"
|
"github.com/up9inc/mizu/tap/api"
|
||||||
"github.com/up9inc/mizu/tap/tcp"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type tlsPoller struct {
|
type tlsPoller struct {
|
||||||
@@ -31,6 +30,14 @@ type tlsPoller struct {
|
|||||||
extension *api.Extension
|
extension *api.Extension
|
||||||
procfs string
|
procfs string
|
||||||
pidToNamespace sync.Map
|
pidToNamespace sync.Map
|
||||||
|
id int64
|
||||||
|
isClosed bool
|
||||||
|
protoIdentifier *api.ProtoIdentifier
|
||||||
|
isTapTarget bool
|
||||||
|
clients []api.TcpReader
|
||||||
|
servers []api.TcpReader
|
||||||
|
origin api.Capture
|
||||||
|
createdAt time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
func newTlsPoller(tls *TlsTapper, extension *api.Extension, procfs string) *tlsPoller {
|
func newTlsPoller(tls *TlsTapper, extension *api.Extension, procfs string) *tlsPoller {
|
||||||
@@ -42,6 +49,10 @@ func newTlsPoller(tls *TlsTapper, extension *api.Extension, procfs string) *tlsP
|
|||||||
extension: extension,
|
extension: extension,
|
||||||
chunksReader: nil,
|
chunksReader: nil,
|
||||||
procfs: procfs,
|
procfs: procfs,
|
||||||
|
protoIdentifier: &api.ProtoIdentifier{},
|
||||||
|
isTapTarget: true,
|
||||||
|
origin: api.Ebpf,
|
||||||
|
createdAt: time.Now(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,13 +139,12 @@ func (p *tlsPoller) handleTlsChunk(chunk *tlsChunk, extension *api.Extension,
|
|||||||
key := buildTlsKey(chunk, ip, port)
|
key := buildTlsKey(chunk, ip, port)
|
||||||
reader, exists := p.readers[key]
|
reader, exists := p.readers[key]
|
||||||
|
|
||||||
stream := tcp.NewTcpStreamDummy(api.Ebpf)
|
|
||||||
tlsReader := NewTlsReader(
|
tlsReader := NewTlsReader(
|
||||||
key,
|
key,
|
||||||
func(r *tlsReader) {
|
func(r *tlsReader) {
|
||||||
p.closeReader(key, r)
|
p.closeReader(key, r)
|
||||||
},
|
},
|
||||||
stream,
|
p,
|
||||||
)
|
)
|
||||||
|
|
||||||
if !exists {
|
if !exists {
|
||||||
@@ -268,3 +278,57 @@ func (p *tlsPoller) logTls(chunk *tlsChunk, ip net.IP, port uint16) {
|
|||||||
srcIp, srcPort, dstIp, dstPort,
|
srcIp, srcPort, dstIp, dstPort,
|
||||||
chunk.Recorded, chunk.Len, chunk.Start, str, hex.EncodeToString(chunk.Data[0:chunk.Recorded]))
|
chunk.Recorded, chunk.Len, chunk.Start, str, hex.EncodeToString(chunk.Data[0:chunk.Recorded]))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) Close() {}
|
||||||
|
|
||||||
|
func (p *tlsPoller) CloseOtherProtocolDissectors(protocol *api.Protocol) {
|
||||||
|
// TODO: Implement
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) AddClient(reader api.TcpReader) {}
|
||||||
|
|
||||||
|
func (p *tlsPoller) AddServer(reader api.TcpReader) {}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetClients() []api.TcpReader {
|
||||||
|
return p.clients
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetServers() []api.TcpReader {
|
||||||
|
return p.servers
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetClient(index int) api.TcpReader {
|
||||||
|
return p.clients[index]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetServer(index int) api.TcpReader {
|
||||||
|
return p.servers[index]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetOrigin() api.Capture {
|
||||||
|
return p.origin
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetProtoIdentifier() *api.ProtoIdentifier {
|
||||||
|
return p.protoIdentifier
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetReqResMatcher() api.RequestResponseMatcher {
|
||||||
|
return p.reqResMatcher
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetIsTapTarget() bool {
|
||||||
|
return p.isTapTarget
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetIsClosed() bool {
|
||||||
|
return p.isClosed
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) GetId() int64 {
|
||||||
|
return p.id
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *tlsPoller) SetId(id int64) {
|
||||||
|
p.id = id
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user