mirror of
https://github.com/netbirdio/netbird.git
synced 2026-05-06 00:56:39 +00:00
31 lines
913 B
Go
31 lines
913 B
Go
//go:build darwin || dragonfly || freebsd || netbsd || openbsd
|
|
|
|
package systemops
|
|
|
|
import (
|
|
"bytes"
|
|
"os/exec"
|
|
"testing"
|
|
)
|
|
|
|
// ensureIPv6DefaultRoute installs an IPv6 default route via the loopback
|
|
// interface so route lookups for global IPv6 prefixes resolve in environments
|
|
// without v6 connectivity. If a default already exists it is left alone.
|
|
func ensureIPv6DefaultRoute(t *testing.T) {
|
|
t.Helper()
|
|
|
|
out, err := exec.Command("route", "-6", "add", "default", "-iface", "lo0").CombinedOutput()
|
|
if err != nil {
|
|
// Existing default; nothing to install or clean up.
|
|
if bytes.Contains(out, []byte("route already in table")) {
|
|
return
|
|
}
|
|
t.Skipf("install IPv6 fallback default route: %v: %s", err, out)
|
|
}
|
|
t.Cleanup(func() {
|
|
if out, err := exec.Command("route", "-6", "delete", "default").CombinedOutput(); err != nil {
|
|
t.Logf("delete IPv6 fallback default route: %v: %s", err, out)
|
|
}
|
|
})
|
|
}
|