Skip to content

Commit

Permalink
refactor: update GetEventChannel to accept context and stop channel f…
Browse files Browse the repository at this point in the history
…or better event handling

Signed-off-by: slashexx <[email protected]>
  • Loading branch information
slashexx committed Jan 20, 2025
1 parent ec6cf26 commit b660ad1
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions KubeArmor/core/dockerHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,17 +215,22 @@ func (dh *DockerHandler) GetContainerInfo(containerID string, OwnerInfo map[stri
// ========================== //

// GetEventChannel Function
func (dh *DockerHandler) GetEventChannel() <-chan events.Message {
func (dh *DockerHandler) GetEventChannel(ctx context.Context, StopChan <- chan struct{}) <-chan events.Message {
if dh.DockerClient != nil {
eventBuffer := make(chan events.Message, 256)

go func() {
eventStream, _ := dh.DockerClient.Events(context.Background(), events.ListOptions{})

eventStream, _ := dh.DockerClient.Events(ctx, events.ListOptions{})
defer close(eventBuffer)

for event := range eventStream {
select {
case eventBuffer <- event:
case <-ctx.Done():
return
case <-StopChan:
return
default:
kg.Warnf("Docker channel full.")
}
Expand Down Expand Up @@ -765,7 +770,11 @@ func (dm *KubeArmorDaemon) MonitorDockerEvents() {

dm.Logger.Print("Started to monitor Docker events")

EventChan := Docker.GetEventChannel()
ctx, cancel := context.WithCancel(context.Background())
defer cancel()


EventChan := Docker.GetEventChannel(ctx, StopChan)

for {
select {
Expand Down

0 comments on commit b660ad1

Please sign in to comment.