Files
netbird/client/internal/networkmonitor/check_change_bsd.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)
}