Просмотр исходного кода

pkg/mesh: correctly check 172.16/12 IP range

Signed-off-by: Lucas Servén Marín <lserven@gmail.com>
Lucas Servén Marín 5 лет назад
Родитель
Сommit
39803cef66
2 измененных файлов с 6 добавлено и 1 удалено
  1. 1 1
      pkg/mesh/ip.go
  2. 5 0
      pkg/mesh/ip_test.go

+ 1 - 1
pkg/mesh/ip.go

@@ -47,7 +47,7 @@ func isPublic(ip net.IP) bool {
 		case ip4[0] == 10:
 			return false
 		// Check for 172.16.0.0/12.
-		case ip4[0] == 172 && ip4[1]&0xf0 != 0:
+		case ip4[0] == 172 && ip4[1]&0xf0 == 0x10:
 			return false
 		// Check for 192.168.0.0/16.
 		case ip4[0] == 192 && ip4[1] == 168:

+ 5 - 0
pkg/mesh/ip_test.go

@@ -154,6 +154,11 @@ func TestIsPublic(t *testing.T) {
 			ip:   net.ParseIP("172.15.255.255"),
 			out:  true,
 		},
+		{
+			name: "above 172.16/12",
+			ip:   net.ParseIP("172.160.255.255"),
+			out:  true,
+		},
 		{
 			name: "192.168/16",
 			ip:   net.ParseIP("192.168.0.0"),