diff --git a/pkg/containerwatcher/v2/event_handler_factory.go b/pkg/containerwatcher/v2/event_handler_factory.go index 4ce061e06..668a91881 100644 --- a/pkg/containerwatcher/v2/event_handler_factory.go +++ b/pkg/containerwatcher/v2/event_handler_factory.go @@ -137,7 +137,7 @@ func NewEventHandlerFactory( } case utils.IoUringEventType: if iouringEvent, ok := event.(utils.IOUring); ok { - rulePolicyReporter.ReportEvent(eventType, event, iouringEvent.GetContainerID(), iouringEvent.GetIdentifier()) + rulePolicyReporter.ReportEvent(eventType, event, iouringEvent.GetContainerID(), iouringEvent.GetComm()) } } }) diff --git a/pkg/utils/datasource_event.go b/pkg/utils/datasource_event.go index 55abaca20..3c5d803e7 100644 --- a/pkg/utils/datasource_event.go +++ b/pkg/utils/datasource_event.go @@ -5,6 +5,7 @@ import ( "net" "net/http" "os" + "strconv" "strings" "sync" "time" @@ -409,13 +410,28 @@ func (e *DatasourceEvent) GetExtra() interface{} { } func (e *DatasourceEvent) GetFlags() []string { - flags, _ := e.getFieldAccessor("flags_raw").Int32(e.Data) - return decodeOpenFlags(flags) + switch e.EventType { + case IoUringEventType: + flags, _ := e.getFieldAccessor("flags").Uint32(e.Data) + if flags == 0 { + return nil + } + return []string{strconv.FormatUint(uint64(flags), 10)} + default: + flags, _ := e.getFieldAccessor("flags_raw").Int32(e.Data) + return decodeOpenFlags(flags) + } } func (e *DatasourceEvent) GetFlagsRaw() uint32 { - flags, _ := e.getFieldAccessor("flags_raw").Int32(e.Data) - return uint32(flags) + switch e.EventType { + case IoUringEventType: + flags, _ := e.getFieldAccessor("flags").Uint32(e.Data) + return flags + default: + flags, _ := e.getFieldAccessor("flags_raw").Int32(e.Data) + return uint32(flags) + } } func (e *DatasourceEvent) GetFullPath() string {