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