Index: net/base/ssl_false_start_blacklist.cc |
=================================================================== |
--- net/base/ssl_false_start_blacklist.cc (revision 95909) |
+++ net/base/ssl_false_start_blacklist.cc (working copy) |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -7,19 +7,22 @@ |
namespace net { |
// static |
-bool SSLFalseStartBlacklist::IsMember(const std::string& host) { |
- const std::string last_two_components(LastTwoComponents(host)); |
- if (last_two_components.empty()) |
+bool SSLFalseStartBlacklist::IsMember(const char* host) { |
+ const char* last_two_labels = LastTwoLabels(host); |
+ if (!last_two_labels) |
return false; |
+ const unsigned bucket = Hash(last_two_labels) & (kBuckets - 1); |
+ const uint32 start = kHashTable[bucket]; |
+ const uint32 end = kHashTable[bucket + 1]; |
+ const size_t len = strlen(host); |
- const size_t bucket = Hash(last_two_components) & (kBuckets - 1); |
- for (size_t i = kHashTable[bucket]; i < kHashTable[bucket + 1]; ) { |
+ for (size_t i = start; i < end;) { |
const size_t blacklist_entry_len = static_cast<uint8>(kHashData[i]); |
- if (host.length() >= blacklist_entry_len && |
- !host.compare(host.length() - blacklist_entry_len, blacklist_entry_len, |
- &kHashData[i + 1], blacklist_entry_len) && |
- (host.length() == blacklist_entry_len || |
- host[host.length() - blacklist_entry_len - 1] == '.')) { |
+ if (len >= blacklist_entry_len && |
+ memcmp(&host[len - blacklist_entry_len], &kHashData[i + 1], |
+ blacklist_entry_len) == 0 && |
+ (len == blacklist_entry_len || |
+ host[len - blacklist_entry_len - 1] == '.')) { |
return true; |
} |
i += blacklist_entry_len + 1; |
Property changes on: net/base/ssl_false_start_blacklist.cc |
___________________________________________________________________ |
Deleted: svn:eol-style |
- LF |