Browse Source

Merge pull request #2253 from zerotier/freebsd-localhost

Consider ::ffff:127.0.0.1 as a loopback address
Travis LaDuke 1 year ago
parent
commit
9f499827af
1 changed files with 13 additions and 0 deletions
  1. 13 0
      node/InetAddress.cpp

+ 13 - 0
node/InetAddress.cpp

@@ -132,7 +132,20 @@ InetAddress::IpScope InetAddress::ipScope() const
 					return IP_SCOPE_PRIVATE;        // fc00::/7
 				}
 			}
+
+			// :::ffff:127.0.0.1
+			// 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0x7f, 0, 0, 1
 			unsigned int k = 0;
+			while ((!ip[k])&&(k < 9)) {
+				++k;
+			}
+			if (k == 9) {
+				if (ip[10] == 0xff && ip[11] == 0xff && ip[12] == 0x7f) {
+					return IP_SCOPE_LOOPBACK;
+				}
+			}
+
+			k = 0;
 			while ((!ip[k])&&(k < 15)) {
 				++k;
 			}