| Index: net/quic/core/quic_connection.cc
|
| diff --git a/net/quic/core/quic_connection.cc b/net/quic/core/quic_connection.cc
|
| index 66f5be67dfaf18d0bbe4daf1ecb6a72ddae3a40d..59fa781e3d3595ef2ce8e917e4e9c0389c6a79e1 100644
|
| --- a/net/quic/core/quic_connection.cc
|
| +++ b/net/quic/core/quic_connection.cc
|
| @@ -24,12 +24,12 @@
|
| #include "net/quic/core/proto/cached_network_parameters.pb.h"
|
| #include "net/quic/core/quic_bandwidth.h"
|
| #include "net/quic/core/quic_config.h"
|
| -#include "net/quic/core/quic_flags.h"
|
| #include "net/quic/core/quic_packet_generator.h"
|
| #include "net/quic/core/quic_pending_retransmission.h"
|
| #include "net/quic/core/quic_utils.h"
|
| #include "net/quic/platform/api/quic_bug_tracker.h"
|
| #include "net/quic/platform/api/quic_flag_utils.h"
|
| +#include "net/quic/platform/api/quic_flags.h"
|
| #include "net/quic/platform/api/quic_logging.h"
|
| #include "net/quic/platform/api/quic_map_util.h"
|
| #include "net/quic/platform/api/quic_str_cat.h"
|
| @@ -240,6 +240,7 @@ QuicConnection::QuicConnection(QuicConnectionId connection_id,
|
| debug_visitor_(nullptr),
|
| packet_generator_(connection_id_,
|
| &framer_,
|
| + random_generator_,
|
| helper->GetBufferAllocator(),
|
| this),
|
| idle_network_timeout_(QuicTime::Delta::Infinite()),
|
| @@ -1057,9 +1058,9 @@ QuicConsumedData QuicConnection::SendStreamData(
|
| QuicStreamId id,
|
| QuicIOVector iov,
|
| QuicStreamOffset offset,
|
| - bool fin,
|
| + StreamSendingState state,
|
| QuicReferenceCountedPointer<QuicAckListenerInterface> ack_listener) {
|
| - if (!fin && iov.total_length == 0) {
|
| + if (state == NO_FIN && iov.total_length == 0) {
|
| QUIC_BUG << "Attempt to send empty stream frame";
|
| return QuicConsumedData(0, false);
|
| }
|
| @@ -1074,12 +1075,12 @@ QuicConsumedData QuicConnection::SendStreamData(
|
| // The optimized path may be used for data only packets which fit into a
|
| // standard buffer and don't need padding.
|
| if (id != kCryptoStreamId && !packet_generator_.HasQueuedFrames() &&
|
| - iov.total_length > kMaxPacketSize) {
|
| + iov.total_length > kMaxPacketSize && state != FIN_AND_PADDING) {
|
| // Use the fast path to send full data packets.
|
| - return packet_generator_.ConsumeDataFastPath(id, iov, offset, fin,
|
| - std::move(ack_listener));
|
| + return packet_generator_.ConsumeDataFastPath(
|
| + id, iov, offset, state != NO_FIN, std::move(ack_listener));
|
| }
|
| - return packet_generator_.ConsumeData(id, iov, offset, fin,
|
| + return packet_generator_.ConsumeData(id, iov, offset, state,
|
| std::move(ack_listener));
|
| }
|
|
|
|
|