瀏覽代碼

libnetwork/osl: Namespace: inline setGateway and setGatewayIPv6

They were not consistently used, and the locations where they were
used were already "setters", so we may as well inline the code.

Also updating Namespace.Restore to keep the lock slightly longer,
instead of locking/unlocking for each property individually, although
we should consider to keep the long for the duration of the whole
function to make it more atomic.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 1 年之前
父節點
當前提交
7b96663082
共有 2 個文件被更改,包括 13 次插入29 次删除
  1. 4 14
      libnetwork/osl/namespace_linux.go
  2. 9 15
      libnetwork/osl/route_linux.go

+ 4 - 14
libnetwork/osl/namespace_linux.go

@@ -557,26 +557,16 @@ func (n *Namespace) Restore(ifsopt map[Iface][]IfaceOption, routes []*types.Stat
 		}
 		}
 	}
 	}
 
 
-	// restore routes
-	for _, r := range routes {
-		n.mu.Lock()
-		n.staticRoutes = append(n.staticRoutes, r)
-		n.mu.Unlock()
-	}
-
-	// restore gateway
+	// restore routes and gateways
+	n.mu.Lock()
+	n.staticRoutes = append(n.staticRoutes, routes...)
 	if len(gw) > 0 {
 	if len(gw) > 0 {
-		n.mu.Lock()
 		n.gw = gw
 		n.gw = gw
-		n.mu.Unlock()
 	}
 	}
-
 	if len(gw6) > 0 {
 	if len(gw6) > 0 {
-		n.mu.Lock()
 		n.gwv6 = gw6
 		n.gwv6 = gw6
-		n.mu.Unlock()
 	}
 	}
-
+	n.mu.Unlock()
 	return nil
 	return nil
 }
 }
 
 

+ 9 - 15
libnetwork/osl/route_linux.go

@@ -40,18 +40,6 @@ func (n *Namespace) StaticRoutes() []*types.StaticRoute {
 	return routes
 	return routes
 }
 }
 
 
-func (n *Namespace) setGateway(gw net.IP) {
-	n.mu.Lock()
-	n.gw = gw
-	n.mu.Unlock()
-}
-
-func (n *Namespace) setGatewayIPv6(gwv6 net.IP) {
-	n.mu.Lock()
-	n.gwv6 = gwv6
-	n.mu.Unlock()
-}
-
 // SetGateway sets the default IPv4 gateway for the sandbox. It is a no-op
 // SetGateway sets the default IPv4 gateway for the sandbox. It is a no-op
 // if the given gateway is empty.
 // if the given gateway is empty.
 func (n *Namespace) SetGateway(gw net.IP) error {
 func (n *Namespace) SetGateway(gw net.IP) error {
@@ -62,7 +50,9 @@ func (n *Namespace) SetGateway(gw net.IP) error {
 	if err := n.programGateway(gw, true); err != nil {
 	if err := n.programGateway(gw, true); err != nil {
 		return err
 		return err
 	}
 	}
-	n.setGateway(gw)
+	n.mu.Lock()
+	n.gw = gw
+	n.mu.Unlock()
 	return nil
 	return nil
 }
 }
 
 
@@ -77,7 +67,9 @@ func (n *Namespace) UnsetGateway() error {
 	if err := n.programGateway(gw, false); err != nil {
 	if err := n.programGateway(gw, false); err != nil {
 		return err
 		return err
 	}
 	}
-	n.setGateway(net.IP{})
+	n.mu.Lock()
+	n.gw = net.IP{}
+	n.mu.Unlock()
 	return nil
 	return nil
 }
 }
 
 
@@ -155,7 +147,9 @@ func (n *Namespace) SetGatewayIPv6(gwv6 net.IP) error {
 		return err
 		return err
 	}
 	}
 
 
-	n.setGatewayIPv6(gwv6)
+	n.mu.Lock()
+	n.gwv6 = gwv6
+	n.mu.Unlock()
 	return nil
 	return nil
 }
 }