mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-09-14 05:40:16 +00:00
Close the reader when we drop the connection
This commit is contained in:
@@ -13,6 +13,7 @@ type golangReader struct {
|
||||
data []byte
|
||||
progress *api.ReadProgress
|
||||
tcpID *api.TcpID
|
||||
isClosed bool
|
||||
isClient bool
|
||||
captureTime time.Time
|
||||
extension *api.Extension
|
||||
@@ -42,6 +43,13 @@ func (r *golangReader) send(b []byte) {
|
||||
r.msgQueue <- b
|
||||
}
|
||||
|
||||
func (r *golangReader) close() {
|
||||
if !r.isClosed {
|
||||
r.isClosed = true
|
||||
close(r.msgQueue)
|
||||
}
|
||||
}
|
||||
|
||||
func (r *golangReader) Read(p []byte) (int, error) {
|
||||
var b []byte
|
||||
|
||||
|
@@ -139,6 +139,15 @@ func (p *tlsPoller) pollGolangReadWrite(rd *ringbuf.Reader, emitter api.Emitter,
|
||||
|
||||
if p.golangReadWriteMap.Len()+1 > golangMapLimit {
|
||||
pair := p.golangReadWriteMap.Oldest()
|
||||
c := pair.Value.(*golangConnection)
|
||||
clientReader := c.clientReader
|
||||
if clientReader != nil {
|
||||
clientReader.close()
|
||||
}
|
||||
serverReader := c.serverReader
|
||||
if serverReader != nil {
|
||||
serverReader.close()
|
||||
}
|
||||
p.golangReadWriteMap.Delete(pair.Key)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user