Skip to content

Commit

Permalink
libnetwork: Endpoint.AddStaticRoute don't create StaticRoute if unused
Browse files Browse the repository at this point in the history
This function either had to create a new StaticRoute, or add the destination
to the list of routes. Skip creating a StaticRoute struct if we're not
gonna use it.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
  • Loading branch information
thaJeztah committed Aug 29, 2023
1 parent 1dcb11f commit 8c6a46f
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions libnetwork/endpoint_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -280,15 +280,16 @@ func (ep *Endpoint) InterfaceName() driverapi.InterfaceNameInfo {
func (ep *Endpoint) AddStaticRoute(destination *net.IPNet, routeType int, nextHop net.IP) error {
ep.mu.Lock()
defer ep.mu.Unlock()

r := types.StaticRoute{Destination: destination, RouteType: routeType, NextHop: nextHop}

if routeType == types.NEXTHOP {
// If the route specifies a next-hop, then it's loosely routed (i.e. not bound to a particular interface).
ep.joinInfo.StaticRoutes = append(ep.joinInfo.StaticRoutes, &r)
ep.joinInfo.StaticRoutes = append(ep.joinInfo.StaticRoutes, &types.StaticRoute{
Destination: destination,
RouteType: routeType,
NextHop: nextHop,
})
} else {
// If the route doesn't specify a next-hop, it must be a connected route, bound to an interface.
ep.iface.routes = append(ep.iface.routes, r.Destination)
ep.iface.routes = append(ep.iface.routes, destination)
}
return nil
}
Expand Down

0 comments on commit 8c6a46f

Please sign in to comment.