wgengine/router: rename config.Settings to config.Config, make pointer.

Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
David Anderson
2020-05-12 07:08:52 +00:00
committed by Dave Anderson
parent 72cae5504c
commit 9ccbcda612
13 changed files with 78 additions and 54 deletions

View File

@@ -141,7 +141,11 @@ func (r *linuxRouter) Close() error {
}
// Set implements the Router interface.
func (r *linuxRouter) Set(rs Settings) error {
func (r *linuxRouter) Set(cfg *Config) error {
if cfg == nil {
cfg = &shutdownConfig
}
// cidrDiff calls add and del as needed to make the set of prefixes in
// old and new match. Returns a map version of new, and the first
// error encountered while reconfiguring, if any.
@@ -182,23 +186,23 @@ func (r *linuxRouter) Set(rs Settings) error {
var errq error
newAddrs, err := cidrDiff("addr", r.addrs, rs.LocalAddrs, r.addAddress, r.delAddress)
newAddrs, err := cidrDiff("addr", r.addrs, cfg.LocalAddrs, r.addAddress, r.delAddress)
if err != nil && errq == nil {
errq = err
}
newRoutes, err := cidrDiff("route", r.routes, rs.Routes, r.addRoute, r.delRoute)
newRoutes, err := cidrDiff("route", r.routes, cfg.Routes, r.addRoute, r.delRoute)
if err != nil && errq == nil {
errq = err
}
newSubnetRoutes, err := cidrDiff("subnet rule", r.subnetRoutes, rs.SubnetRoutes, r.addSubnetRule, r.delSubnetRule)
newSubnetRoutes, err := cidrDiff("subnet rule", r.subnetRoutes, cfg.SubnetRoutes, r.addSubnetRule, r.delSubnetRule)
if err != nil && errq == nil {
errq = err
}
switch {
case rs.NoSNAT == r.noSNAT:
case cfg.NoSNAT == r.noSNAT:
// state already correct, nothing to do.
case rs.NoSNAT:
case cfg.NoSNAT:
if err := r.delSNATRule(); err != nil && errq == nil {
errq = err
}
@@ -211,11 +215,11 @@ func (r *linuxRouter) Set(rs Settings) error {
r.addrs = newAddrs
r.routes = newRoutes
r.subnetRoutes = newSubnetRoutes
r.noSNAT = rs.NoSNAT
r.noSNAT = cfg.NoSNAT
// TODO: this:
if false {
if err := r.replaceResolvConf(rs.DNS, rs.DNSDomains); err != nil {
if err := r.replaceResolvConf(cfg.DNS, cfg.DNSDomains); err != nil {
errq = fmt.Errorf("replacing resolv.conf failed: %v", err)
}
}