| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 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 #ifndef NET_QUIC_CRYPTO_SOURCE_ADDRESS_TOKEN_H_ | 5 #ifndef NET_QUIC_CRYPTO_CACHED_NETWORK_PARAMETERS_H_ |
| 6 #define NET_QUIC_CRYPTO_SOURCE_ADDRESS_TOKEN_H_ | 6 #define NET_QUIC_CRYPTO_CACHED_NETWORK_PARAMETERS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 11 #include "base/strings/string_piece.h" | 11 #include "base/strings/string_piece.h" |
| 12 #include "net/base/net_export.h" | 12 #include "net/base/net_export.h" |
| 13 | 13 |
| 14 namespace net { | 14 namespace net { |
| 15 | 15 |
| 16 // TODO(rtenneti): sync with server more rationally. | 16 // TODO(rtenneti): sync with server more rationally. |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 int64 max_bandwidth_timestamp_seconds_; | 97 int64 max_bandwidth_timestamp_seconds_; |
| 98 // The min RTT seen on a previous connection can be used by the server to | 98 // The min RTT seen on a previous connection can be used by the server to |
| 99 // inform initial connection parameters for new connections. | 99 // inform initial connection parameters for new connections. |
| 100 int32 min_rtt_ms_; | 100 int32 min_rtt_ms_; |
| 101 // Encodes the PreviousConnectionState enum. | 101 // Encodes the PreviousConnectionState enum. |
| 102 int32 previous_connection_state_; | 102 int32 previous_connection_state_; |
| 103 // UNIX timestamp when this bandwidth estimate was created. | 103 // UNIX timestamp when this bandwidth estimate was created. |
| 104 int64 timestamp_; | 104 int64 timestamp_; |
| 105 }; | 105 }; |
| 106 | 106 |
| 107 // TODO(rtenneti): sync with server more rationally. | |
| 108 // A SourceAddressToken is serialised, encrypted and sent to clients so that | |
| 109 // they can prove ownership of an IP address. | |
| 110 class NET_EXPORT_PRIVATE SourceAddressToken { | |
| 111 public: | |
| 112 SourceAddressToken(); | |
| 113 ~SourceAddressToken(); | |
| 114 | |
| 115 std::string SerializeAsString() const; | |
| 116 | |
| 117 bool ParseFromArray(const char* plaintext, size_t plaintext_length); | |
| 118 | |
| 119 std::string ip() const { | |
| 120 return ip_; | |
| 121 } | |
| 122 void set_ip(base::StringPiece ip) { | |
| 123 ip_ = ip.as_string(); | |
| 124 } | |
| 125 | |
| 126 int64 timestamp() const { | |
| 127 return timestamp_; | |
| 128 } | |
| 129 void set_timestamp(int64 timestamp) { | |
| 130 timestamp_ = timestamp; | |
| 131 } | |
| 132 | |
| 133 const CachedNetworkParameters& cached_network_parameters() const { | |
| 134 return cached_network_parameters_; | |
| 135 } | |
| 136 void set_cached_network_parameters( | |
| 137 const CachedNetworkParameters& cached_network_parameters) { | |
| 138 cached_network_parameters_ = cached_network_parameters; | |
| 139 has_cached_network_parameters_ = true; | |
| 140 } | |
| 141 bool has_cached_network_parameters() const { | |
| 142 return has_cached_network_parameters_; | |
| 143 } | |
| 144 | |
| 145 private: | |
| 146 // ip_ contains either 4 (IPv4) or 16 (IPv6) bytes of IP address in network | |
| 147 // byte order. | |
| 148 std::string ip_; | |
| 149 // timestamp_ contains a UNIX timestamp value of the time when the token was | |
| 150 // created. | |
| 151 int64 timestamp_; | |
| 152 | |
| 153 // The server can provide estimated network parameters to be used for | |
| 154 // initial parameter selection in future connections. | |
| 155 CachedNetworkParameters cached_network_parameters_; | |
| 156 // TODO(rtenneti): Delete |has_cached_network_parameters_| after we convert | |
| 157 // SourceAddressToken to protobuf. | |
| 158 bool has_cached_network_parameters_; | |
| 159 | |
| 160 DISALLOW_COPY_AND_ASSIGN(SourceAddressToken); | |
| 161 }; | |
| 162 | |
| 163 } // namespace net | 107 } // namespace net |
| 164 | 108 |
| 165 #endif // NET_QUIC_CRYPTO_SOURCE_ADDRESS_TOKEN_H_ | 109 #endif // NET_QUIC_CRYPTO_CACHED_NETWORK_PARAMETERS_H_ |
| OLD | NEW |