Strip IP addresses in NDEBUG (release) builds.

Also removes the ability to override (set) this.

BUG=
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1480743002 .

Cr-Commit-Position: refs/heads/master@{#10796}
This commit is contained in:
Peter Boström 2015-11-26 00:35:49 +01:00
parent b86c5027a0
commit cdb38e5397
4 changed files with 23 additions and 32 deletions

View File

@ -41,8 +41,6 @@ static const in6_addr kTeredoPrefix = {{{0x20, 0x01, 0x00, 0x00}}};
static const in6_addr kV4CompatibilityPrefix = {{{0}}}; static const in6_addr kV4CompatibilityPrefix = {{{0}}};
static const in6_addr k6BonePrefix = {{{0x3f, 0xfe, 0}}}; static const in6_addr k6BonePrefix = {{{0x3f, 0xfe, 0}}};
bool IPAddress::strip_sensitive_ = false;
static bool IsPrivateV4(uint32_t ip); static bool IsPrivateV4(uint32_t ip);
static in_addr ExtractMappedAddress(const in6_addr& addr); static in_addr ExtractMappedAddress(const in6_addr& addr);
@ -144,9 +142,10 @@ std::string IPAddress::ToString() const {
} }
std::string IPAddress::ToSensitiveString() const { std::string IPAddress::ToSensitiveString() const {
if (!strip_sensitive_) #if !defined(NDEBUG)
// Return non-stripped in debug.
return ToString(); return ToString();
#else
switch (family_) { switch (family_) {
case AF_INET: { case AF_INET: {
std::string address = ToString(); std::string address = ToString();
@ -164,6 +163,7 @@ std::string IPAddress::ToSensitiveString() const {
} }
} }
return std::string(); return std::string();
#endif
} }
IPAddress IPAddress::Normalized() const { IPAddress IPAddress::Normalized() const {
@ -186,10 +186,6 @@ IPAddress IPAddress::AsIPv6Address() const {
return IPAddress(v6addr); return IPAddress(v6addr);
} }
void IPAddress::set_strip_sensitive(bool enable) {
strip_sensitive_ = enable;
}
bool InterfaceAddress::operator==(const InterfaceAddress &other) const { bool InterfaceAddress::operator==(const InterfaceAddress &other) const {
return ipv6_flags_ == other.ipv6_flags() && return ipv6_flags_ == other.ipv6_flags() &&
static_cast<const IPAddress&>(*this) == other; static_cast<const IPAddress&>(*this) == other;

View File

@ -112,16 +112,12 @@ class IPAddress {
// Whether this is an unspecified IP address. // Whether this is an unspecified IP address.
bool IsNil() const; bool IsNil() const;
static void set_strip_sensitive(bool enable);
private: private:
int family_; int family_;
union { union {
in_addr ip4; in_addr ip4;
in6_addr ip6; in6_addr ip6;
} u_; } u_;
static bool strip_sensitive_;
}; };
// IP class which could represent IPv6 address flags which is only // IP class which could represent IPv6 address flags which is only

View File

@ -888,20 +888,16 @@ TEST(IPAddressTest, TestCategorizeIPv6) {
TEST(IPAddressTest, TestToSensitiveString) { TEST(IPAddressTest, TestToSensitiveString) {
IPAddress addr_v4 = IPAddress(kIPv4PublicAddr); IPAddress addr_v4 = IPAddress(kIPv4PublicAddr);
EXPECT_EQ(kIPv4PublicAddrString, addr_v4.ToString());
EXPECT_EQ(kIPv4PublicAddrString, addr_v4.ToSensitiveString());
IPAddress::set_strip_sensitive(true);
EXPECT_EQ(kIPv4PublicAddrString, addr_v4.ToString());
EXPECT_EQ(kIPv4PublicAddrAnonymizedString, addr_v4.ToSensitiveString());
IPAddress::set_strip_sensitive(false);
IPAddress addr_v6 = IPAddress(kIPv6PublicAddr); IPAddress addr_v6 = IPAddress(kIPv6PublicAddr);
EXPECT_EQ(kIPv4PublicAddrString, addr_v4.ToString());
EXPECT_EQ(kIPv6PublicAddrString, addr_v6.ToString()); EXPECT_EQ(kIPv6PublicAddrString, addr_v6.ToString());
EXPECT_EQ(kIPv6PublicAddrString, addr_v6.ToSensitiveString()); #if defined(NDEBUG)
IPAddress::set_strip_sensitive(true); EXPECT_EQ(kIPv4PublicAddrAnonymizedString, addr_v4.ToSensitiveString());
EXPECT_EQ(kIPv6PublicAddrString, addr_v6.ToString());
EXPECT_EQ(kIPv6PublicAddrAnonymizedString, addr_v6.ToSensitiveString()); EXPECT_EQ(kIPv6PublicAddrAnonymizedString, addr_v6.ToSensitiveString());
IPAddress::set_strip_sensitive(false); #else
EXPECT_EQ(kIPv4PublicAddrString, addr_v4.ToSensitiveString());
EXPECT_EQ(kIPv6PublicAddrString, addr_v6.ToSensitiveString());
#endif // defined(NDEBUG)
} }
TEST(IPAddressTest, TestInterfaceAddress) { TEST(IPAddressTest, TestInterfaceAddress) {

View File

@ -325,23 +325,26 @@ TEST(SocketAddressTest, TestToSensitiveString) {
SocketAddress addr_v4("1.2.3.4", 5678); SocketAddress addr_v4("1.2.3.4", 5678);
EXPECT_EQ("1.2.3.4", addr_v4.HostAsURIString()); EXPECT_EQ("1.2.3.4", addr_v4.HostAsURIString());
EXPECT_EQ("1.2.3.4:5678", addr_v4.ToString()); EXPECT_EQ("1.2.3.4:5678", addr_v4.ToString());
EXPECT_EQ("1.2.3.4", addr_v4.HostAsSensitiveURIString());
EXPECT_EQ("1.2.3.4:5678", addr_v4.ToSensitiveString()); #if defined(NDEBUG)
IPAddress::set_strip_sensitive(true);
EXPECT_EQ("1.2.3.x", addr_v4.HostAsSensitiveURIString()); EXPECT_EQ("1.2.3.x", addr_v4.HostAsSensitiveURIString());
EXPECT_EQ("1.2.3.x:5678", addr_v4.ToSensitiveString()); EXPECT_EQ("1.2.3.x:5678", addr_v4.ToSensitiveString());
IPAddress::set_strip_sensitive(false); #else
EXPECT_EQ("1.2.3.4", addr_v4.HostAsSensitiveURIString());
EXPECT_EQ("1.2.3.4:5678", addr_v4.ToSensitiveString());
#endif // defined(NDEBUG)
SocketAddress addr_v6(kTestV6AddrString, 5678); SocketAddress addr_v6(kTestV6AddrString, 5678);
EXPECT_EQ("[" + kTestV6AddrString + "]", addr_v6.HostAsURIString()); EXPECT_EQ("[" + kTestV6AddrString + "]", addr_v6.HostAsURIString());
EXPECT_EQ(kTestV6AddrFullString, addr_v6.ToString()); EXPECT_EQ(kTestV6AddrFullString, addr_v6.ToString());
EXPECT_EQ("[" + kTestV6AddrString + "]", addr_v6.HostAsSensitiveURIString()); #if defined(NDEBUG)
EXPECT_EQ(kTestV6AddrFullString, addr_v6.ToSensitiveString());
IPAddress::set_strip_sensitive(true);
EXPECT_EQ("[" + kTestV6AddrAnonymizedString + "]", EXPECT_EQ("[" + kTestV6AddrAnonymizedString + "]",
addr_v6.HostAsSensitiveURIString()); addr_v6.HostAsSensitiveURIString());
EXPECT_EQ(kTestV6AddrFullAnonymizedString, addr_v6.ToSensitiveString()); EXPECT_EQ(kTestV6AddrFullAnonymizedString, addr_v6.ToSensitiveString());
IPAddress::set_strip_sensitive(false); #else
EXPECT_EQ("[" + kTestV6AddrString + "]", addr_v6.HostAsSensitiveURIString());
EXPECT_EQ(kTestV6AddrFullString, addr_v6.ToSensitiveString());
#endif // defined(NDEBUG)
} }
} // namespace rtc } // namespace rtc