Index: net/base/transport_security_state.cc |
diff --git a/net/base/transport_security_state.cc b/net/base/transport_security_state.cc |
index aed714caafb8f10880947802fef863bb0b2daba6..b7ac9f0a7a50bfff5d59927eccd0def3d00fc09c 100644 |
--- a/net/base/transport_security_state.cc |
+++ b/net/base/transport_security_state.cc |
@@ -45,10 +45,32 @@ void TransportSecurityState::EnableHost(const std::string& host, |
if (IsEnabledForHost(&existing_state, host)) |
state_copy.created = existing_state.created; |
+ // We don't store these values. |
+ state_copy.preloaded = false; |
+ state_copy.domain.clear(); |
+ |
enabled_hosts_[std::string(hashed, sizeof(hashed))] = state_copy; |
DirtyNotify(); |
} |
+bool TransportSecurityState::DeleteHost(const std::string& host) { |
+ const std::string canonicalised_host = CanonicaliseHost(host); |
eroman
2011/02/16 20:12:45
I don't really care, but the other code I have see
agl
2011/02/16 22:46:22
Done.
|
+ if (canonicalised_host.empty()) |
+ return false; |
+ |
+ char hashed[base::SHA256_LENGTH]; |
+ base::SHA256HashString(canonicalised_host, hashed, sizeof(hashed)); |
+ |
+ std::map<std::string, DomainState>::iterator i = enabled_hosts_.find( |
+ std::string(hashed, sizeof(hashed))); |
+ if (i != enabled_hosts_.end()) { |
+ enabled_hosts_.erase(i); |
+ DirtyNotify(); |
+ return true; |
+ } |
+ return false; |
+} |
+ |
// IncludeNUL converts a char* to a std::string and includes the terminating |
// NUL in the result. |
static std::string IncludeNUL(const char* in) { |
@@ -66,9 +88,11 @@ bool TransportSecurityState::IsEnabledForHost(DomainState* result, |
result->created = result->expiry = base::Time::FromTimeT(0); |
result->mode = DomainState::MODE_STRICT; |
result->include_subdomains = include_subdomains; |
+ result->preloaded = true; |
eroman
2011/02/16 20:12:45
you might consider default initializing everything
agl
2011/02/16 22:46:22
Done.
|
return true; |
} |
+ result->preloaded = false; |
base::Time current_time(base::Time::Now()); |
for (size_t i = 0; canonicalised_host[i]; i += canonicalised_host[i] + 1) { |
@@ -88,6 +112,7 @@ bool TransportSecurityState::IsEnabledForHost(DomainState* result, |
} |
*result = j->second; |
+ result->domain = DNSDomainToString(&canonicalised_host[i]); |
eroman
2011/02/16 20:12:45
why taking the address? isn't the input a const st
agl
2011/02/16 22:46:22
I just wanted a pointer into the string. Switched
|
// If we matched the domain exactly, it doesn't matter what the value of |
// include_subdomains is. |