| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/crypto/strike_register.h" | 5 #include "net/quic/crypto/strike_register.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 | 10 |
| 11 using std::make_pair; | |
| 12 using std::max; | 11 using std::max; |
| 13 using std::min; | 12 using std::min; |
| 14 using std::pair; | 13 using std::pair; |
| 15 using std::set; | 14 using std::set; |
| 16 using std::vector; | 15 using std::vector; |
| 17 | 16 |
| 18 namespace net { | 17 namespace net { |
| 19 | 18 |
| 20 namespace { | 19 namespace { |
| 21 | 20 |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 return static_cast<uint32>(d[0]) << 24 | | 316 return static_cast<uint32>(d[0]) << 24 | |
| 318 static_cast<uint32>(d[1]) << 16 | | 317 static_cast<uint32>(d[1]) << 16 | |
| 319 static_cast<uint32>(d[2]) << 8 | | 318 static_cast<uint32>(d[2]) << 8 | |
| 320 static_cast<uint32>(d[3]); | 319 static_cast<uint32>(d[3]); |
| 321 } | 320 } |
| 322 | 321 |
| 323 pair<uint32, uint32> StrikeRegister::GetValidRange( | 322 pair<uint32, uint32> StrikeRegister::GetValidRange( |
| 324 uint32 current_time_internal) const { | 323 uint32 current_time_internal) const { |
| 325 if (current_time_internal < horizon_) { | 324 if (current_time_internal < horizon_) { |
| 326 // Empty valid range. | 325 // Empty valid range. |
| 327 return make_pair(std::numeric_limits<uint32>::max(), 0); | 326 return std::make_pair(std::numeric_limits<uint32>::max(), 0); |
| 328 } | 327 } |
| 329 | 328 |
| 330 uint32 lower_bound; | 329 uint32 lower_bound; |
| 331 if (current_time_internal >= window_secs_) { | 330 if (current_time_internal >= window_secs_) { |
| 332 lower_bound = max(horizon_, current_time_internal - window_secs_); | 331 lower_bound = max(horizon_, current_time_internal - window_secs_); |
| 333 } else { | 332 } else { |
| 334 lower_bound = horizon_; | 333 lower_bound = horizon_; |
| 335 } | 334 } |
| 336 | 335 |
| 337 // Also limit the upper range based on horizon_. This makes the | 336 // Also limit the upper range based on horizon_. This makes the |
| 338 // strike register reject inserts that are far in the future and | 337 // strike register reject inserts that are far in the future and |
| 339 // would consume strike register resources for a long time. This | 338 // would consume strike register resources for a long time. This |
| 340 // allows the strike server to degrade optimally in cases where the | 339 // allows the strike server to degrade optimally in cases where the |
| 341 // insert rate exceeds |max_entries_ / (2 * window_secs_)| entries | 340 // insert rate exceeds |max_entries_ / (2 * window_secs_)| entries |
| 342 // per second. | 341 // per second. |
| 343 uint32 upper_bound = | 342 uint32 upper_bound = |
| 344 current_time_internal + min(current_time_internal - horizon_, | 343 current_time_internal + min(current_time_internal - horizon_, |
| 345 window_secs_); | 344 window_secs_); |
| 346 | 345 |
| 347 return make_pair(lower_bound, upper_bound); | 346 return std::make_pair(lower_bound, upper_bound); |
| 348 } | 347 } |
| 349 | 348 |
| 350 uint32 StrikeRegister::ExternalTimeToInternal(uint32 external_time) const { | 349 uint32 StrikeRegister::ExternalTimeToInternal(uint32 external_time) const { |
| 351 return external_time - internal_epoch_; | 350 return external_time - internal_epoch_; |
| 352 } | 351 } |
| 353 | 352 |
| 354 uint32 StrikeRegister::BestMatch(const uint8 v[24]) const { | 353 uint32 StrikeRegister::BestMatch(const uint8 v[24]) const { |
| 355 if (internal_node_head_ == kNil) { | 354 if (internal_node_head_ == kNil) { |
| 356 return kNil; | 355 return kNil; |
| 357 } | 356 } |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 CHECK_EQ(free_internal_nodes.count(inter), 0u); | 511 CHECK_EQ(free_internal_nodes.count(inter), 0u); |
| 513 CHECK_EQ(used_internal_nodes->count(inter), 0u); | 512 CHECK_EQ(used_internal_nodes->count(inter), 0u); |
| 514 used_internal_nodes->insert(inter); | 513 used_internal_nodes->insert(inter); |
| 515 ValidateTree(inter, bit, bits, free_internal_nodes, free_external_nodes, | 514 ValidateTree(inter, bit, bits, free_internal_nodes, free_external_nodes, |
| 516 used_internal_nodes, used_external_nodes); | 515 used_internal_nodes, used_external_nodes); |
| 517 } | 516 } |
| 518 } | 517 } |
| 519 } | 518 } |
| 520 | 519 |
| 521 } // namespace net | 520 } // namespace net |
| OLD | NEW |