Index: net/http/http_server_properties.cc |
diff --git a/net/http/http_server_properties.cc b/net/http/http_server_properties.cc |
index 386a00d0fe3e53c356865c2ce47088f3e245e1b0..e6018a2d32123ab76eecbcf07e0bd49dae1e876c 100644 |
--- a/net/http/http_server_properties.cc |
+++ b/net/http/http_server_properties.cc |
@@ -7,6 +7,7 @@ |
#include "base/logging.h" |
#include "base/metrics/histogram_macros.h" |
#include "base/strings/stringprintf.h" |
+#include "net/http/http_network_session.h" |
#include "net/socket/ssl_client_socket.h" |
#include "net/ssl/ssl_config.h" |
@@ -78,6 +79,44 @@ bool IsAlternateProtocolValid(NextProto protocol) { |
return false; |
} |
+AlternativeServiceInfo::AlternativeServiceInfo() : alternative_service() {} |
+ |
+AlternativeServiceInfo::~AlternativeServiceInfo() {} |
+ |
+AlternativeServiceInfo::AlternativeServiceInfo( |
+ const AlternativeService& alternative_service, |
+ base::Time expiration) |
+ : alternative_service(alternative_service), expiration(expiration) {} |
+ |
+AlternativeServiceInfo::AlternativeServiceInfo( |
+ const AlternativeService& alternative_service, |
+ base::Time expiration, |
+ const QuicVersionVector& advertised_versions) |
+ : alternative_service(alternative_service), expiration(expiration) { |
+ if (alternative_service.protocol == kProtoQUIC) { |
+ advertised_versions_ = advertised_versions; |
+ std::sort(advertised_versions_.begin(), advertised_versions_.end()); |
+ } |
+} |
+ |
+AlternativeServiceInfo::AlternativeServiceInfo( |
+ const AlternativeServiceInfo& alternative_service_info) = default; |
+ |
+AlternativeServiceInfo& AlternativeServiceInfo::operator=( |
+ const AlternativeServiceInfo& alternative_service_info) = default; |
+ |
+bool AlternativeServiceInfo::EqualAdvertisedVersions( |
+ const AlternativeServiceInfo& other) const { |
+ if (alternative_service.protocol != kProtoQUIC) |
+ return true; |
+ |
+ // Check equality of advertised versions for QUIC. |
+ if (advertised_versions_.size() != other.advertised_versions().size()) |
+ return false; |
Ryan Hamilton
2017/06/07 20:52:23
Is this expression necessary? I suspect == will ju
Zhongyi Shi
2017/06/08 23:11:16
Acknowledged. This method is removed in the new pa
|
+ |
+ return advertised_versions_ == other.advertised_versions(); |
+} |
+ |
std::string AlternativeService::ToString() const { |
return base::StringPrintf("%s %s:%d", NextProtoToString(protocol), |
host.c_str(), port); |