Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume.charmes@docker.com> (github: creack)
| ... | ... |
@@ -12,6 +12,10 @@ var ( |
| 12 | 12 |
ErrNetworkOverlaps = errors.New("requested network overlaps with existing network")
|
| 13 | 13 |
) |
| 14 | 14 |
|
| 15 |
+var ( |
|
| 16 |
+ networkGetRoutesFct = netlink.NetworkGetRoutes |
|
| 17 |
+) |
|
| 18 |
+ |
|
| 15 | 19 |
func CheckNameserverOverlaps(nameservers []string, toCheck *net.IPNet) error {
|
| 16 | 20 |
if len(nameservers) > 0 {
|
| 17 | 21 |
for _, ns := range nameservers {
|
| ... | ... |
@@ -28,7 +32,7 @@ func CheckNameserverOverlaps(nameservers []string, toCheck *net.IPNet) error {
|
| 28 | 28 |
} |
| 29 | 29 |
|
| 30 | 30 |
func CheckRouteOverlaps(toCheck *net.IPNet) error {
|
| 31 |
- networks, err := netlink.NetworkGetRoutes() |
|
| 31 |
+ networks, err := networkGetRoutesFct() |
|
| 32 | 32 |
if err != nil {
|
| 33 | 33 |
return err |
| 34 | 34 |
} |
| ... | ... |
@@ -35,12 +35,19 @@ func TestOverlapingNameservers(t *testing.T) {
|
| 35 | 35 |
} |
| 36 | 36 |
|
| 37 | 37 |
func TestCheckRouteOverlaps(t *testing.T) {
|
| 38 |
- routesData := []string{"10.0.2.0/32", "10.0.3.0/24", "10.0.42.0/24", "172.16.42.0/24", "192.168.142.0/24"}
|
|
| 39 |
- |
|
| 40 |
- routes := []netlink.Route{}
|
|
| 41 |
- for _, addr := range routesData {
|
|
| 42 |
- _, netX, _ := net.ParseCIDR(addr) |
|
| 43 |
- routes = append(routes, netlink.Route{IPNet: netX})
|
|
| 38 |
+ orig := networkGetRoutesFct |
|
| 39 |
+ defer func() {
|
|
| 40 |
+ networkGetRoutesFct = orig |
|
| 41 |
+ }() |
|
| 42 |
+ networkGetRoutesFct = func() ([]netlink.Route, error) {
|
|
| 43 |
+ routesData := []string{"10.0.2.0/32", "10.0.3.0/24", "10.0.42.0/24", "172.16.42.0/24", "192.168.142.0/24"}
|
|
| 44 |
+ |
|
| 45 |
+ routes := []netlink.Route{}
|
|
| 46 |
+ for _, addr := range routesData {
|
|
| 47 |
+ _, netX, _ := net.ParseCIDR(addr) |
|
| 48 |
+ routes = append(routes, netlink.Route{IPNet: netX})
|
|
| 49 |
+ } |
|
| 50 |
+ return routes, nil |
|
| 44 | 51 |
} |
| 45 | 52 |
|
| 46 | 53 |
_, netX, _ := net.ParseCIDR("172.16.0.1/24")
|