Index: net/quic/quic_packet_creator.h |
diff --git a/net/quic/quic_packet_creator.h b/net/quic/quic_packet_creator.h |
index e3fdc2bfef753dd051efe1e15acbea02605f3290..60f9fb48dd759d8a2f76a1bde449520ea9f31078 100644 |
--- a/net/quic/quic_packet_creator.h |
+++ b/net/quic/quic_packet_creator.h |
@@ -19,6 +19,9 @@ |
#include "net/quic/quic_protocol.h" |
namespace net { |
+namespace test { |
+class QuicPacketCreatorPeer; |
+} |
class QuicRandom; |
@@ -41,7 +44,8 @@ class NET_EXPORT_PRIVATE QuicPacketCreator : public QuicFecBuilderInterface { |
// QuicRandom* required for packet entropy. |
QuicPacketCreator(QuicGuid guid, |
QuicFramer* framer, |
- QuicRandom* random_generator); |
+ QuicRandom* random_generator, |
+ bool is_server); |
virtual ~QuicPacketCreator(); |
@@ -57,6 +61,9 @@ class NET_EXPORT_PRIVATE QuicPacketCreator : public QuicFecBuilderInterface { |
// and there is not already an FEC group open. |
void MaybeStartFEC(); |
+ // Makes the framer not serialize the protocol version in sent packets. |
+ void StopSendingVersion(); |
+ |
// The overhead the framing will add for a packet with num_frames frames. |
static size_t StreamFramePacketOverhead(int num_frames, bool include_version); |
@@ -108,6 +115,13 @@ class NET_EXPORT_PRIVATE QuicPacketCreator : public QuicFecBuilderInterface { |
SerializedPacket SerializeConnectionClose( |
QuicConnectionCloseFrame* close_frame); |
+ // Creates a version negotiation packet which supports |supported_versions|. |
+ // Caller owns the created packet. Also, sets the entropy hash of the |
+ // serialized packet to a random bool and returns that value as a member of |
+ // SerializedPacket. |
+ QuicEncryptedPacket* SerializeVersionNegotiationPacket( |
+ const QuicVersionTagList& supported_versions); |
+ |
QuicPacketSequenceNumber sequence_number() const { |
return sequence_number_; |
} |
@@ -121,6 +135,8 @@ class NET_EXPORT_PRIVATE QuicPacketCreator : public QuicFecBuilderInterface { |
} |
private: |
+ friend class test::QuicPacketCreatorPeer; |
+ |
static bool ShouldRetransmit(const QuicFrame& frame); |
void FillPacketHeader(QuicFecGroupNumber fec_group, |
@@ -139,6 +155,11 @@ class NET_EXPORT_PRIVATE QuicPacketCreator : public QuicFecBuilderInterface { |
QuicPacketSequenceNumber sequence_number_; |
QuicFecGroupNumber fec_group_number_; |
scoped_ptr<QuicFecGroup> fec_group_; |
+ // bool to keep track if this packet creator is being used the server. |
+ bool is_server_; |
+ // Controls whether protocol version should be included while serializing the |
+ // packet. |
+ bool send_version_in_packet_; |
size_t packet_size_; |
QuicFrames queued_frames_; |
scoped_ptr<RetransmittableFrames> queued_retransmittable_frames_; |