Skip to content

Commit

Permalink
fix: address compilation issues for non-linux oses
Browse files Browse the repository at this point in the history
  • Loading branch information
pkoutsovasilis committed Jan 31, 2024
1 parent 80bd7f9 commit d779054
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 27 deletions.
32 changes: 5 additions & 27 deletions auditbeat/module/file_integrity/eventreader_fsnotify.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (
"errors"
"fmt"
"path/filepath"
"runtime"
"syscall"
"time"

Expand All @@ -33,7 +32,7 @@ import (
"github.com/elastic/elastic-agent-libs/logp"
)

type reader struct {
type fsNotifyReader struct {
watcher monitor.Watcher
config Config
eventC chan Event
Expand All @@ -42,28 +41,7 @@ type reader struct {
parsers []FileParser
}

// NewEventReader creates a new EventProducer backed by fsnotify.
func NewEventReader(c Config) (EventProducer, error) {

if runtime.GOOS == "linux" {
switch c.ForceBackend {
case BackendKProbes:
return &kProbesReader{
config: c,
log: logp.NewLogger(moduleName),
parsers: FileParsers(c),
}, nil
}
}

return &reader{
config: c,
log: logp.NewLogger(moduleName),
parsers: FileParsers(c),
}, nil
}

func (r *reader) Start(done <-chan struct{}) (<-chan Event, error) {
func (r *fsNotifyReader) Start(done <-chan struct{}) (<-chan Event, error) {
watcher, err := monitor.New(r.config.Recursive, r.config.IsExcludedPath)
if err != nil {
return nil, err
Expand Down Expand Up @@ -118,7 +96,7 @@ func (r *reader) Start(done <-chan struct{}) (<-chan Event, error) {
return r.eventC, nil
}

func (r *reader) enqueueEvents(done <-chan struct{}) (events []*Event) {
func (r *fsNotifyReader) enqueueEvents(done <-chan struct{}) (events []*Event) {
for {
ev := r.nextEvent(done)
if ev == nil {
Expand All @@ -128,7 +106,7 @@ func (r *reader) enqueueEvents(done <-chan struct{}) (events []*Event) {
}
}

func (r *reader) consumeEvents(done <-chan struct{}) {
func (r *fsNotifyReader) consumeEvents(done <-chan struct{}) {
defer close(r.eventC)
defer r.watcher.Close()

Expand All @@ -142,7 +120,7 @@ func (r *reader) consumeEvents(done <-chan struct{}) {
}
}

func (r *reader) nextEvent(done <-chan struct{}) *Event {
func (r *fsNotifyReader) nextEvent(done <-chan struct{}) *Event {
for {
select {
case <-done:
Expand Down
44 changes: 44 additions & 0 deletions auditbeat/module/file_integrity/eventreader_linux.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

//go:build linux

package file_integrity

import (
"github.com/elastic/elastic-agent-libs/logp"
)

// NewEventReader creates a new EventProducer backed by fsnotify.
func NewEventReader(c Config) (EventProducer, error) {
switch c.ForceBackend {
case BackendKProbes:
return &kProbesReader{
config: c,
log: logp.NewLogger(moduleName),
parsers: FileParsers(c),
}, nil
case BackendFSNotify:
fallthrough
default:
return &fsNotifyReader{
config: c,
log: logp.NewLogger(moduleName),
parsers: FileParsers(c),
}, nil
}
}
33 changes: 33 additions & 0 deletions auditbeat/module/file_integrity/eventreader_other.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

//go:build freebsd || openbsd || netbsd || windows

package file_integrity

import (
"github.com/elastic/elastic-agent-libs/logp"
)

// NewEventReader creates a new EventProducer backed by fsnotify.
func NewEventReader(c Config) (EventProducer, error) {
return &fsNotifyReader{
config: c,
log: logp.NewLogger(moduleName),
parsers: FileParsers(c),
}, nil
}

0 comments on commit d779054

Please sign in to comment.