Fix "IsLoopbackIp" to cover all loopback addresses; not just 127.0.0.1.
The loopback range is 127.0.0.0/8, which is everything from 127.0.0.0 to 127.255.255.255. BUG=chromium:649118 Review-Url: https://codereview.webrtc.org/2445933003 Cr-Commit-Position: refs/heads/master@{#14807}
This commit is contained in:
parent
6be0a657c5
commit
9922016ee4
@ -294,7 +294,7 @@ bool IPIsAny(const IPAddress& ip) {
|
||||
bool IPIsLoopback(const IPAddress& ip) {
|
||||
switch (ip.family()) {
|
||||
case AF_INET: {
|
||||
return ip == IPAddress(INADDR_LOOPBACK);
|
||||
return (ip.v4AddressAsHostOrderInteger() >> 24) == 127;
|
||||
}
|
||||
case AF_INET6: {
|
||||
return ip == IPAddress(in6addr_loopback);
|
||||
|
||||
@ -575,6 +575,9 @@ TEST(IPAddressTest, TestIsLoopback) {
|
||||
EXPECT_FALSE(IPIsLoopback(IPAddress(kIPv4MappedPublicAddr)));
|
||||
|
||||
EXPECT_TRUE(IPIsLoopback(IPAddress(INADDR_LOOPBACK)));
|
||||
// Try an address in the loopback range (127.0.0.0/8) other than the typical
|
||||
// 127.0.0.1.
|
||||
EXPECT_TRUE(IPIsLoopback(IPAddress(0x7f010203)));
|
||||
EXPECT_TRUE(IPIsLoopback(IPAddress(in6addr_loopback)));
|
||||
}
|
||||
|
||||
|
||||
@ -452,7 +452,9 @@ class TurnPortTest : public testing::Test,
|
||||
ipv6 ? kTurnIPv6IntAddr : kTurnIntAddr;
|
||||
|
||||
std::vector<rtc::SocketAddress> redirect_addresses;
|
||||
SocketAddress loopback_address(ipv6 ? "::1" : "127.0.0.1",
|
||||
// Pick an unusual address in the 127.0.0.0/8 range to make sure more than
|
||||
// 127.0.0.1 is covered.
|
||||
SocketAddress loopback_address(ipv6 ? "::1" : "127.1.2.3",
|
||||
TURN_SERVER_PORT);
|
||||
redirect_addresses.push_back(loopback_address);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user