Land Recent QUIC changes.
commit3e60db87c3efc64a62a24e8dbd973ef8a83f420a
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Mon, 5 Aug 2013 19:43:06 +0000 (5 19:43 +0000)
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Mon, 5 Aug 2013 19:43:06 +0000 (5 19:43 +0000)
tree595f10254a4dcc4dcf36bd4ea3465a2b35db8a66
parentf0eda8165420562d6769b19f0126d5158dabd817
Land Recent QUIC changes.

Minor style change for initialization of hdr.msg_flags.

Merge internal change: 49828095

Enabled MaxNumStreams in quic/tools area.

Renamed MaxNumConnections to MaxNumStreams. Initialize
set_max_streams_per_connection only in MaxNumStreams, not for all tests.

Merge internal change: 49728455

QUIC - Adding a bit more information to a logged DFATAL.

Merge internal change: 49724887

Always expecting certificates for secure quic (test) clients. Changing
the end_to_end test to be insecure as it doesn't configure certs.

Merge internal change: 49723287

QUIC - Adding back a comment change that was deleted in the following CL.

https://chromiumcodereview.appspot.com/22020002/diff/1/net/quic/quic_connection.cc

Merge internal change: 49713074

Fail to process a header when the fec group offset is larger than the
packet sequence number.

Merge internal change: 49677837

Added a test to ensure that if the QuicPacketCreator has room for the
stream frame it can be added.

Merge internal change: 49620569

Adding support to QUIC for QUIC_VERSION_7, enabling lower overhead stream frames.

Merge internal change: 49540337

Rearrange code to match spdy_protocol.h SpdyFrameType declaration
order: mostly method declarations and definitions and case statements.

Merge internal change: 49503521

Refactor QuicReceivedEntropyManager and the other received packet code
into Quic ReceivedPacketManager to allow the entropy state and the ack's
received info to stay in sync.

Merge internal change: 49440136

Made a copy of QuicReceivedEntropyManager*.* code into QuicReceivedPacketManager*.*

Doing a better job of detecting unrecoverable compression state.

This is really tricky to get right.

We don't want to unilaterally close the connection if a stream closes before
headers are decompressed. If, for example, a server gets a protocol-layer
error while processing a request it could kill of a stream with something
like QUIC_MULTIPLE_TERMINATION_OFFSETS without sending the http/spdy
response. In this case, the client could continue processing on that
connection.

We basically want to kill off the connection if we get any packets for a
stream we've closed without processing complete headers. Which means
tracking state for every stream which closes without processing complete
headers which is a very unlikely OOM attack vector. I'm capping it at 20
somewhat arbitrarily, and calling it a day.

Merge internal change: 49373258

Removing logspam from quic connection.

Merge internal change: 49370853

Altering the server to not process headers until full headers have been read.

This fixes a problem where if we parsed partial headers, found an error, and
rejected the stream before getting full headers it would be possible to doom
the entire connection.

Merge internal change: 49239328

R=rch@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22122002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215661 0039d316-1c4b-4281-b951-d872f2087c98
48 files changed:
net/net.gyp
net/quic/quic_connection.cc
net/quic/quic_connection.h
net/quic/quic_connection_helper_test.cc
net/quic/quic_connection_test.cc
net/quic/quic_framer.cc
net/quic/quic_framer.h
net/quic/quic_framer_test.cc
net/quic/quic_http_stream_test.cc
net/quic/quic_network_transaction_unittest.cc
net/quic/quic_packet_creator.cc
net/quic/quic_packet_creator.h
net/quic/quic_packet_creator_test.cc
net/quic/quic_packet_generator.cc
net/quic/quic_protocol.cc
net/quic/quic_protocol.h
net/quic/quic_protocol_test.cc
net/quic/quic_received_entropy_manager.cc [deleted file]
net/quic/quic_received_entropy_manager.h [deleted file]
net/quic/quic_received_entropy_manager_test.cc [deleted file]
net/quic/quic_received_packet_manager.cc
net/quic/quic_received_packet_manager.h
net/quic/quic_received_packet_manager_test.cc
net/quic/quic_session.cc
net/quic/quic_session.h
net/quic/quic_spdy_decompressor.cc
net/quic/quic_stream_factory_test.cc
net/quic/reliable_quic_stream.h
net/quic/reliable_quic_stream_test.cc
net/quic/test_tools/quic_connection_peer.cc
net/quic/test_tools/quic_connection_peer.h
net/quic/test_tools/quic_received_packet_manager_peer.cc [new file with mode: 0644]
net/quic/test_tools/quic_received_packet_manager_peer.h [new file with mode: 0644]
net/quic/test_tools/quic_test_utils.cc
net/quic/test_tools/quic_test_utils.h
net/quic/test_tools/reliable_quic_stream_peer.cc
net/quic/test_tools/reliable_quic_stream_peer.h
net/tools/quic/end_to_end_test.cc
net/tools/quic/quic_client.cc
net/tools/quic/quic_client.h
net/tools/quic/quic_client_session_test.cc
net/tools/quic/quic_dispatcher.cc
net/tools/quic/quic_dispatcher_test.cc
net/tools/quic/quic_epoll_connection_helper_test.cc
net/tools/quic/quic_socket_utils.cc
net/tools/quic/quic_time_wait_list_manager.cc
net/tools/quic/test_tools/quic_test_client.cc
net/tools/quic/test_tools/quic_test_client.h