12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/test_tools/quic_connection_peer.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/stl_util.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/congestion_control/receive_algorithm_interface.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/congestion_control/send_algorithm_interface.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/quic_connection.h" 111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "net/quic/quic_packet_writer.h" 12a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "net/quic/quic_received_packet_manager.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/test_tools/quic_framer_peer.h" 14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "net/quic/test_tools/quic_packet_generator_peer.h" 15a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "net/quic/test_tools/quic_sent_packet_manager_peer.h" 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace net { 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace test { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void QuicConnectionPeer::SendAck(QuicConnection* connection) { 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) connection->SendAck(); 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void QuicConnectionPeer::SetReceiveAlgorithm( 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicConnection* connection, 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ReceiveAlgorithmInterface* receive_algorithm) { 29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) connection->received_packet_manager_.receive_algorithm_.reset( 30a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) receive_algorithm); 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void QuicConnectionPeer::SetSendAlgorithm( 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicConnection* connection, 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SendAlgorithmInterface* send_algorithm) { 37a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) connection->sent_packet_manager_.send_algorithm_.reset(send_algorithm); 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 412385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochQuicAckFrame* QuicConnectionPeer::CreateAckFrame(QuicConnection* connection) { 422385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch return connection->CreateAckFrame(); 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)QuicConnectionVisitorInterface* QuicConnectionPeer::GetVisitor( 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicConnection* connection) { 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return connection->visitor_; 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)QuicPacketCreator* QuicConnectionPeer::GetPacketCreator( 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicConnection* connection) { 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return QuicPacketGeneratorPeer::GetPacketCreator( 55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) &connection->packet_generator_); 56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// static 59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)QuicPacketGenerator* QuicConnectionPeer::GetPacketGenerator( 60f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) QuicConnection* connection) { 61f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return &connection->packet_generator_; 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 64a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// static 655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)QuicSentPacketManager* QuicConnectionPeer::GetSentPacketManager( 665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) QuicConnection* connection) { 675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return &connection->sent_packet_manager_; 685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// static 71a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)QuicReceivedPacketManager* QuicConnectionPeer::GetReceivedPacketManager( 72a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) QuicConnection* connection) { 73a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return &connection->received_packet_manager_; 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 77868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)QuicTime::Delta QuicConnectionPeer::GetNetworkTimeout( 78868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) QuicConnection* connection) { 79868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return connection->idle_network_timeout_; 8090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 8190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 8290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// static 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool QuicConnectionPeer::IsSavedForRetransmission( 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicConnection* connection, 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicPacketSequenceNumber sequence_number) { 8668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) return connection->sent_packet_manager_.IsUnacked(sequence_number) && 8768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) connection->sent_packet_manager_.HasRetransmittableFrames( 8868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) sequence_number); 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 92f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool QuicConnectionPeer::IsRetransmission( 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicConnection* connection, 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicPacketSequenceNumber sequence_number) { 95a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return QuicSentPacketManagerPeer::IsRetransmission( 96a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) &connection->sent_packet_manager_, sequence_number); 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 1005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// TODO(ianswett): Create a GetSentEntropyHash which accepts an AckFrame. 1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)QuicPacketEntropyHash QuicConnectionPeer::GetSentEntropyHash( 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicConnection* connection, 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicPacketSequenceNumber sequence_number) { 104558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch return connection->sent_entropy_manager_.EntropyHash(sequence_number); 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool QuicConnectionPeer::IsValidEntropy( 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicConnection* connection, 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicPacketSequenceNumber largest_observed, 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const SequenceNumberSet& missing_packets, 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicPacketEntropyHash entropy_hash) { 113558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch return connection->sent_entropy_manager_.IsValidEntropy( 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) largest_observed, missing_packets, entropy_hash); 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)QuicPacketEntropyHash QuicConnectionPeer::ReceivedEntropyHash( 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicConnection* connection, 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicPacketSequenceNumber sequence_number) { 1212385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch return connection->received_packet_manager_.EntropyHash( 122558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch sequence_number); 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool QuicConnectionPeer::IsServer(QuicConnection* connection) { 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return connection->is_server_; 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void QuicConnectionPeer::SetIsServer(QuicConnection* connection, 1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_server) { 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) connection->is_server_ = is_server; 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) QuicFramerPeer::SetIsServer(&connection->framer_, is_server); 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 137b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// static 1387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void QuicConnectionPeer::SetSelfAddress(QuicConnection* connection, 1397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const IPEndPoint& self_address) { 1407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) connection->self_address_ = self_address; 1417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// static 14458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void QuicConnectionPeer::SetPeerAddress(QuicConnection* connection, 14558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const IPEndPoint& peer_address) { 14658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) connection->peer_address_ = peer_address; 14758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 14858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 14958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// static 150b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)void QuicConnectionPeer::SwapCrypters(QuicConnection* connection, 151b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) QuicFramer* framer) { 1525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu QuicFramerPeer::SwapCrypters(framer, &connection->framer_); 153b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)} 154b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 15590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// static 15690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)QuicConnectionHelperInterface* QuicConnectionPeer::GetHelper( 15790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) QuicConnection* connection) { 1581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return connection->helper_; 15990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 16090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 161ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static 162ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicFramer* QuicConnectionPeer::GetFramer(QuicConnection* connection) { 163ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return &connection->framer_; 164ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 165ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 16690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)QuicFecGroup* QuicConnectionPeer::GetFecGroup(QuicConnection* connection, 16790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) int fec_group) { 16890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) connection->last_header_.fec_group = fec_group; 16990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return connection->GetFecGroup(); 17090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 17190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 172ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static 173ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicAlarm* QuicConnectionPeer::GetAckAlarm(QuicConnection* connection) { 174ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return connection->ack_alarm_.get(); 175ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 176ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 177ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static 1780529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochQuicAlarm* QuicConnectionPeer::GetPingAlarm(QuicConnection* connection) { 1790529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch return connection->ping_alarm_.get(); 1800529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 1810529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 1820529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// static 1830529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochQuicAlarm* QuicConnectionPeer::GetResumeWritesAlarm( 1840529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch QuicConnection* connection) { 1850529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch return connection->resume_writes_alarm_.get(); 1860529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 1870529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 1880529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// static 189ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicAlarm* QuicConnectionPeer::GetRetransmissionAlarm( 190ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch QuicConnection* connection) { 191ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return connection->retransmission_alarm_.get(); 192ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 193ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 194ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static 195ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicAlarm* QuicConnectionPeer::GetSendAlarm(QuicConnection* connection) { 196ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return connection->send_alarm_.get(); 197ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 198ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 199ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static 200ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicAlarm* QuicConnectionPeer::GetTimeoutAlarm(QuicConnection* connection) { 201ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return connection->timeout_alarm_.get(); 202ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 203ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 2041e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static 2051e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)QuicPacketWriter* QuicConnectionPeer::GetWriter(QuicConnection* connection) { 2061e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return connection->writer_; 2071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 2081e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 2091e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static 2101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void QuicConnectionPeer::SetWriter(QuicConnection* connection, 2115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) QuicPacketWriter* writer) { 2121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) connection->writer_ = writer; 2131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 2141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 2155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// static 2165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void QuicConnectionPeer::CloseConnection(QuicConnection* connection) { 2175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) connection->connected_ = false; 2185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 2195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// static 2215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)QuicEncryptedPacket* QuicConnectionPeer::GetConnectionClosePacket( 2225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) QuicConnection* connection) { 2235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return connection->connection_close_packet_.get(); 2245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 2255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 22646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// static 22746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void QuicConnectionPeer::SetSupportedVersions(QuicConnection* connection, 22846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) QuicVersionVector versions) { 22946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) connection->framer_.SetSupportedVersions(versions); 23046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 23146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace test 2332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace net 234