Преглед на файлове

Bug in bridge network mask

- that was causing all networks to be /24

Signed-off-by: Alessandro Boch <aboch@docker.com>
Alessandro Boch преди 10 години
родител
ревизия
e8771c868e
променени са 2 файла, в които са добавени 13 реда и са изтрити 2 реда
  1. 2 2
      libnetwork/drivers/bridge/setup_ipv4.go
  2. 11 0
      libnetwork/drivers/bridge/setup_ipv4_test.go

+ 2 - 2
libnetwork/drivers/bridge/setup_ipv4.go

@@ -31,9 +31,9 @@ func init() {
 		bridgeNetworks = append(bridgeNetworks, &net.IPNet{IP: []byte{10, byte(i), 42, 1}, Mask: mask})
 	}
 	// 192.168.[42-44].1/24
-	mask[2] = 255
+	mask24 := []byte{255, 255, 255, 0}
 	for i := 42; i < 45; i++ {
-		bridgeNetworks = append(bridgeNetworks, &net.IPNet{IP: []byte{192, 168, byte(i), 1}, Mask: mask})
+		bridgeNetworks = append(bridgeNetworks, &net.IPNet{IP: []byte{192, 168, byte(i), 1}, Mask: mask24})
 	}
 }
 

+ 11 - 0
libnetwork/drivers/bridge/setup_ipv4_test.go

@@ -98,3 +98,14 @@ func TestSetupGatewayIPv4(t *testing.T) {
 		t.Fatalf("Set Default Gateway failed. Expected %v, Found %v", gw, br.gatewayIPv4)
 	}
 }
+
+func TestCheckPreallocatedBridgeNetworks(t *testing.T) {
+	// Just make sure the bridge networks are created the way we want (172.17.x.x/16)
+	for i := 0; i < len(bridgeNetworks); i++ {
+		fb := bridgeNetworks[i].IP[0]
+		ones, _ := bridgeNetworks[i].Mask.Size()
+		if ((fb == 172 || fb == 10) && ones != 16) || (fb == 192 && ones != 24) {
+			t.Fatalf("Wrong mask for preallocated bridge network: %s", bridgeNetworks[i].String())
+		}
+	}
+}