Revert "freebsd: ignore IPv6 for now"
This reverts commit 061422affc
.
We have a way to support IPv6 on FreeBSD now.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
pull/1464/head
parent
f45a9e291b
commit
c8af6bc009
|
@ -1,39 +0,0 @@
|
||||||
// Copyright (c) 2020 Tailscale Inc & AUTHORS All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
// Code generated by tailscale.com/cmd/cloner -type Config; DO NOT EDIT.
|
|
||||||
|
|
||||||
package router
|
|
||||||
|
|
||||||
import (
|
|
||||||
"inet.af/netaddr"
|
|
||||||
"tailscale.com/types/preftype"
|
|
||||||
"tailscale.com/wgengine/router/dns"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Clone makes a deep copy of Config.
|
|
||||||
// The result aliases no memory with the original.
|
|
||||||
func (src *Config) Clone() *Config {
|
|
||||||
if src == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
dst := new(Config)
|
|
||||||
*dst = *src
|
|
||||||
dst.LocalAddrs = append(src.LocalAddrs[:0:0], src.LocalAddrs...)
|
|
||||||
dst.Routes = append(src.Routes[:0:0], src.Routes...)
|
|
||||||
dst.DNS = *src.DNS.Clone()
|
|
||||||
dst.SubnetRoutes = append(src.SubnetRoutes[:0:0], src.SubnetRoutes...)
|
|
||||||
return dst
|
|
||||||
}
|
|
||||||
|
|
||||||
// A compilation failure here means this code must be regenerated, with command:
|
|
||||||
// tailscale.com/cmd/cloner -type Config
|
|
||||||
var _ConfigNeedsRegeneration = Config(struct {
|
|
||||||
LocalAddrs []netaddr.IPPrefix
|
|
||||||
Routes []netaddr.IPPrefix
|
|
||||||
DNS dns.Config
|
|
||||||
SubnetRoutes []netaddr.IPPrefix
|
|
||||||
SNATSubnetRoutes bool
|
|
||||||
NetfilterMode preftype.NetfilterMode
|
|
||||||
}{})
|
|
|
@ -10,8 +10,6 @@ import (
|
||||||
"tailscale.com/types/logger"
|
"tailscale.com/types/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:generate go run tailscale.com/cmd/cloner -type=Config -output=config_clone.go
|
|
||||||
|
|
||||||
// Config is the set of parameters that uniquely determine
|
// Config is the set of parameters that uniquely determine
|
||||||
// the state to which a manager should bring system DNS settings.
|
// the state to which a manager should bring system DNS settings.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
// Copyright (c) 2020 Tailscale Inc & AUTHORS All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
// Code generated by tailscale.com/cmd/cloner -type Config; DO NOT EDIT.
|
|
||||||
|
|
||||||
package dns
|
|
||||||
|
|
||||||
import (
|
|
||||||
"inet.af/netaddr"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Clone makes a deep copy of Config.
|
|
||||||
// The result aliases no memory with the original.
|
|
||||||
func (src *Config) Clone() *Config {
|
|
||||||
if src == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
dst := new(Config)
|
|
||||||
*dst = *src
|
|
||||||
dst.Nameservers = append(src.Nameservers[:0:0], src.Nameservers...)
|
|
||||||
dst.Domains = append(src.Domains[:0:0], src.Domains...)
|
|
||||||
return dst
|
|
||||||
}
|
|
||||||
|
|
||||||
// A compilation failure here means this code must be regenerated, with command:
|
|
||||||
// tailscale.com/cmd/cloner -type Config
|
|
||||||
var _ConfigNeedsRegeneration = Config(struct {
|
|
||||||
Nameservers []netaddr.IP
|
|
||||||
Domains []string
|
|
||||||
PerDomain bool
|
|
||||||
Proxied bool
|
|
||||||
}{})
|
|
|
@ -54,8 +54,6 @@ func Cleanup(logf logger.Logf, interfaceName string) {
|
||||||
cleanup(logf, interfaceName)
|
cleanup(logf, interfaceName)
|
||||||
}
|
}
|
||||||
|
|
||||||
//go:generate go run tailscale.com/cmd/cloner -type=Config -output=config_clone.go
|
|
||||||
|
|
||||||
// Config is the subset of Tailscale configuration that is relevant to
|
// Config is the subset of Tailscale configuration that is relevant to
|
||||||
// the OS's network stack.
|
// the OS's network stack.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
|
|
|
@ -10,7 +10,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"runtime"
|
|
||||||
|
|
||||||
"github.com/tailscale/wireguard-go/device"
|
"github.com/tailscale/wireguard-go/device"
|
||||||
"github.com/tailscale/wireguard-go/tun"
|
"github.com/tailscale/wireguard-go/tun"
|
||||||
|
@ -102,40 +101,9 @@ func inet(p netaddr.IPPrefix) string {
|
||||||
return "inet"
|
return "inet"
|
||||||
}
|
}
|
||||||
|
|
||||||
// See https://github.com/tailscale/tailscale/issues/1307#issuecomment-786045280
|
|
||||||
// Remove all IPv6 entries.
|
|
||||||
func (r *userspaceBSDRouter) modifiedConfigForFreeBSDBugWorkaround(cfg *Config) *Config {
|
|
||||||
n := cfg.Clone()
|
|
||||||
|
|
||||||
n.LocalAddrs = n.LocalAddrs[:0]
|
|
||||||
for _, addr := range cfg.LocalAddrs {
|
|
||||||
if !addr.IP.Is6() {
|
|
||||||
n.LocalAddrs = append(n.LocalAddrs, addr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
n.Routes = n.Routes[:0]
|
|
||||||
for _, addr := range cfg.Routes {
|
|
||||||
if !addr.IP.Is6() {
|
|
||||||
n.Routes = append(n.Routes, addr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
n.SubnetRoutes = n.SubnetRoutes[:0]
|
|
||||||
for _, addr := range cfg.SubnetRoutes {
|
|
||||||
if !addr.IP.Is6() {
|
|
||||||
n.SubnetRoutes = append(n.SubnetRoutes, addr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *userspaceBSDRouter) Set(cfg *Config) (reterr error) {
|
func (r *userspaceBSDRouter) Set(cfg *Config) (reterr error) {
|
||||||
if cfg == nil {
|
if cfg == nil {
|
||||||
cfg = &shutdownConfig
|
cfg = &shutdownConfig
|
||||||
} else if runtime.GOOS == "freebsd" {
|
|
||||||
cfg = r.modifiedConfigForFreeBSDBugWorkaround(cfg)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var errq error
|
var errq error
|
||||||
|
|
Loading…
Reference in New Issue