summaryrefslogtreecommitdiffhomepage
path: root/wgengine
diff options
context:
space:
mode:
authorChristina Wen <christina@tailscale.com>2020-09-11 11:53:25 -0400
committerChristina Wen <christina@tailscale.com>2020-09-15 13:38:06 -0400
commit64f4ea7de37cd001642dddd98953e7ac1ac52346 (patch)
tree89e83200ffec35b852ded7537438156735d8cec9 /wgengine
parentee673d5967090f13774b4aa81efea56d5853004d (diff)
downloadtailscale-c22wen/route-addr.tar.xz
tailscale-c22wen/route-addr.zip
wgengine/router/router_linux.go: Switched `cidrDiff("addr")` and `cidrDiff("route")` orderc22wen/route-addr
Signed-off-by: Christina Wen <christina@tailscale.com>
Diffstat (limited to 'wgengine')
-rw-r--r--wgengine/router/router_linux.go17
1 files changed, 5 insertions, 12 deletions
diff --git a/wgengine/router/router_linux.go b/wgengine/router/router_linux.go
index fd101ef91..00529729d 100644
--- a/wgengine/router/router_linux.go
+++ b/wgengine/router/router_linux.go
@@ -163,33 +163,26 @@ func (r *linuxRouter) Close() error {
}
// Set implements the Router interface.
-func (r *linuxRouter) Set(cfg *Config) (err error) {
+func (r *linuxRouter) Set(cfg *Config) error {
if cfg == nil {
cfg = &shutdownConfig
}
- defer func() {
- if err != nil {
- // restore /etc/resolv.conf to its original state.
- r.dns.Set(dns.Config{})
- }
- }()
-
if err := r.setNetfilterMode(cfg.NetfilterMode); err != nil {
return err
}
- newAddrs, err := cidrDiff("addr", r.addrs, cfg.LocalAddrs, r.addAddress, r.delAddress, r.logf)
+ newRoutes, err := cidrDiff("route", r.routes, cfg.Routes, r.addRoute, r.delRoute, r.logf)
if err != nil {
return err
}
- r.addrs = newAddrs
+ r.routes = newRoutes
- newRoutes, err := cidrDiff("route", r.routes, cfg.Routes, r.addRoute, r.delRoute, r.logf)
+ newAddrs, err := cidrDiff("addr", r.addrs, cfg.LocalAddrs, r.addAddress, r.delAddress, r.logf)
if err != nil {
return err
}
- r.routes = newRoutes
+ r.addrs = newAddrs
switch {
case cfg.SNATSubnetRoutes == r.snatSubnetRoutes: