| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/quic_connection.h" | 5 #include "net/quic/quic_connection.h" |
| 6 | 6 |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 #include <sys/types.h> | 8 #include <sys/types.h> |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <iterator> | 10 #include <iterator> |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 type(GetPacketType(packet.retransmittable_frames)), | 184 type(GetPacketType(packet.retransmittable_frames)), |
| 185 length(packet.packet->length()) { | 185 length(packet.packet->length()) { |
| 186 } | 186 } |
| 187 | 187 |
| 188 #define ENDPOINT (is_server_ ? "Server: " : " Client: ") | 188 #define ENDPOINT (is_server_ ? "Server: " : " Client: ") |
| 189 | 189 |
| 190 QuicConnection::QuicConnection(QuicConnectionId connection_id, | 190 QuicConnection::QuicConnection(QuicConnectionId connection_id, |
| 191 IPEndPoint address, | 191 IPEndPoint address, |
| 192 QuicConnectionHelperInterface* helper, | 192 QuicConnectionHelperInterface* helper, |
| 193 QuicPacketWriter* writer, | 193 QuicPacketWriter* writer, |
| 194 bool owns_writer, |
| 194 bool is_server, | 195 bool is_server, |
| 195 const QuicVersionVector& supported_versions) | 196 const QuicVersionVector& supported_versions) |
| 196 : framer_(supported_versions, helper->GetClock()->ApproximateNow(), | 197 : framer_(supported_versions, helper->GetClock()->ApproximateNow(), |
| 197 is_server), | 198 is_server), |
| 198 helper_(helper), | 199 helper_(helper), |
| 199 writer_(writer), | 200 writer_(writer), |
| 201 owns_writer_(owns_writer), |
| 200 encryption_level_(ENCRYPTION_NONE), | 202 encryption_level_(ENCRYPTION_NONE), |
| 201 clock_(helper->GetClock()), | 203 clock_(helper->GetClock()), |
| 202 random_generator_(helper->GetRandomGenerator()), | 204 random_generator_(helper->GetRandomGenerator()), |
| 203 connection_id_(connection_id), | 205 connection_id_(connection_id), |
| 204 peer_address_(address), | 206 peer_address_(address), |
| 205 migrating_peer_port_(0), | 207 migrating_peer_port_(0), |
| 206 last_packet_revived_(false), | 208 last_packet_revived_(false), |
| 207 last_size_(0), | 209 last_size_(0), |
| 208 last_decrypted_packet_level_(ENCRYPTION_NONE), | 210 last_decrypted_packet_level_(ENCRYPTION_NONE), |
| 209 largest_seen_packet_with_ack_(0), | 211 largest_seen_packet_with_ack_(0), |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 DVLOG(1) << ENDPOINT << "Created connection with connection_id: " | 245 DVLOG(1) << ENDPOINT << "Created connection with connection_id: " |
| 244 << connection_id; | 246 << connection_id; |
| 245 timeout_alarm_->Set(clock_->ApproximateNow().Add(idle_network_timeout_)); | 247 timeout_alarm_->Set(clock_->ApproximateNow().Add(idle_network_timeout_)); |
| 246 framer_.set_visitor(this); | 248 framer_.set_visitor(this); |
| 247 framer_.set_received_entropy_calculator(&received_packet_manager_); | 249 framer_.set_received_entropy_calculator(&received_packet_manager_); |
| 248 stats_.connection_creation_time = clock_->ApproximateNow(); | 250 stats_.connection_creation_time = clock_->ApproximateNow(); |
| 249 sent_packet_manager_.set_network_change_visitor(&packet_generator_); | 251 sent_packet_manager_.set_network_change_visitor(&packet_generator_); |
| 250 } | 252 } |
| 251 | 253 |
| 252 QuicConnection::~QuicConnection() { | 254 QuicConnection::~QuicConnection() { |
| 255 if (owns_writer_) { |
| 256 delete writer_; |
| 257 } |
| 253 STLDeleteElements(&undecryptable_packets_); | 258 STLDeleteElements(&undecryptable_packets_); |
| 254 STLDeleteValues(&group_map_); | 259 STLDeleteValues(&group_map_); |
| 255 for (QueuedPacketList::iterator it = queued_packets_.begin(); | 260 for (QueuedPacketList::iterator it = queued_packets_.begin(); |
| 256 it != queued_packets_.end(); ++it) { | 261 it != queued_packets_.end(); ++it) { |
| 257 delete it->packet; | 262 delete it->packet; |
| 258 } | 263 } |
| 259 } | 264 } |
| 260 | 265 |
| 261 void QuicConnection::SetFromConfig(const QuicConfig& config) { | 266 void QuicConnection::SetFromConfig(const QuicConfig& config) { |
| 262 SetIdleNetworkTimeout(config.idle_connection_state_lifetime()); | 267 SetIdleNetworkTimeout(config.idle_connection_state_lifetime()); |
| (...skipping 1719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1982 // If we changed the generator's batch state, restore original batch state. | 1987 // If we changed the generator's batch state, restore original batch state. |
| 1983 if (!already_in_batch_mode_) { | 1988 if (!already_in_batch_mode_) { |
| 1984 DVLOG(1) << "Leaving Batch Mode."; | 1989 DVLOG(1) << "Leaving Batch Mode."; |
| 1985 connection_->packet_generator_.FinishBatchOperations(); | 1990 connection_->packet_generator_.FinishBatchOperations(); |
| 1986 } | 1991 } |
| 1987 DCHECK_EQ(already_in_batch_mode_, | 1992 DCHECK_EQ(already_in_batch_mode_, |
| 1988 connection_->packet_generator_.InBatchMode()); | 1993 connection_->packet_generator_.InBatchMode()); |
| 1989 } | 1994 } |
| 1990 | 1995 |
| 1991 } // namespace net | 1996 } // namespace net |
| OLD | NEW |