mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-16 15:26:40 +00:00
31 lines
657 B
Go
31 lines
657 B
Go
//go:build dragonfly || freebsd || netbsd || openbsd
|
|
|
|
package networkmonitor
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
"golang.org/x/sys/unix"
|
|
|
|
"github.com/netbirdio/netbird/client/internal/routemanager/systemops"
|
|
)
|
|
|
|
func checkChange(ctx context.Context, nexthopv4, nexthopv6 systemops.Nexthop) error {
|
|
fd, err := prepareFd()
|
|
if err != nil {
|
|
return fmt.Errorf("open routing socket: %v", err)
|
|
}
|
|
|
|
defer func() {
|
|
err := unix.Close(fd)
|
|
if err != nil && !errors.Is(err, unix.EBADF) {
|
|
log.Warnf("Network monitor: failed to close routing socket: %v", err)
|
|
}
|
|
}()
|
|
|
|
return routeCheck(ctx, fd, nexthopv4, nexthopv6)
|
|
}
|