Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: net/quic/quic_session.cc

Issue 1784643006: Deprecate FLAG_quic_block_unencrypted_writes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@115904466
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/quic_flags.cc ('k') | net/tools/quic/quic_client_session_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_session.h" 5 #include "net/quic/quic_session.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "net/quic/crypto/proof_verifier.h" 10 #include "net/quic/crypto/proof_verifier.h"
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 connection_->ProcessUdpPacket(self_address, peer_address, packet); 234 connection_->ProcessUdpPacket(self_address, peer_address, packet);
235 } 235 }
236 236
237 QuicConsumedData QuicSession::WritevData( 237 QuicConsumedData QuicSession::WritevData(
238 QuicStreamId id, 238 QuicStreamId id,
239 QuicIOVector iov, 239 QuicIOVector iov,
240 QuicStreamOffset offset, 240 QuicStreamOffset offset,
241 bool fin, 241 bool fin,
242 FecProtection fec_protection, 242 FecProtection fec_protection,
243 QuicAckListenerInterface* ack_notifier_delegate) { 243 QuicAckListenerInterface* ack_notifier_delegate) {
244 if (FLAGS_quic_block_unencrypted_writes && !IsEncryptionEstablished() && 244 if (!IsEncryptionEstablished() && id != kCryptoStreamId) {
245 id != kCryptoStreamId) {
246 // Do not let streams write without encryption. The calling stream will end 245 // Do not let streams write without encryption. The calling stream will end
247 // up write blocked until OnCanWrite is next called. 246 // up write blocked until OnCanWrite is next called.
248 return QuicConsumedData(0, false); 247 return QuicConsumedData(0, false);
249 } 248 }
250 QuicConsumedData data = connection_->SendStreamData( 249 QuicConsumedData data = connection_->SendStreamData(
251 id, iov, offset, fin, fec_protection, ack_notifier_delegate); 250 id, iov, offset, fin, fec_protection, ack_notifier_delegate);
252 write_blocked_streams_.UpdateBytesForStream(id, data.bytes_consumed); 251 write_blocked_streams_.UpdateBytesForStream(id, data.bytes_consumed);
253 return data; 252 return data;
254 } 253 }
255 254
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 522
524 flow_controller_.UpdateSendWindowOffset(new_window); 523 flow_controller_.UpdateSendWindowOffset(new_window);
525 } 524 }
526 525
527 void QuicSession::OnCryptoHandshakeEvent(CryptoHandshakeEvent event) { 526 void QuicSession::OnCryptoHandshakeEvent(CryptoHandshakeEvent event) {
528 switch (event) { 527 switch (event) {
529 // TODO(satyamshekhar): Move the logic of setting the encrypter/decrypter 528 // TODO(satyamshekhar): Move the logic of setting the encrypter/decrypter
530 // to QuicSession since it is the glue. 529 // to QuicSession since it is the glue.
531 case ENCRYPTION_FIRST_ESTABLISHED: 530 case ENCRYPTION_FIRST_ESTABLISHED:
532 // Given any streams blocked by encryption a chance to write. 531 // Given any streams blocked by encryption a chance to write.
533 if (FLAGS_quic_block_unencrypted_writes) { 532 OnCanWrite();
534 OnCanWrite();
535 }
536 break; 533 break;
537 534
538 case ENCRYPTION_REESTABLISHED: 535 case ENCRYPTION_REESTABLISHED:
539 // Retransmit originally packets that were sent, since they can't be 536 // Retransmit originally packets that were sent, since they can't be
540 // decrypted by the peer. 537 // decrypted by the peer.
541 connection_->RetransmitUnackedPackets(ALL_INITIAL_RETRANSMISSION); 538 connection_->RetransmitUnackedPackets(ALL_INITIAL_RETRANSMISSION);
542 // Given any streams blocked by encryption a chance to write. 539 // Given any streams blocked by encryption a chance to write.
543 if (FLAGS_quic_block_unencrypted_writes) { 540 OnCanWrite();
544 OnCanWrite();
545 }
546 break; 541 break;
547 542
548 case HANDSHAKE_CONFIRMED: 543 case HANDSHAKE_CONFIRMED:
549 QUIC_BUG_IF(!config_.negotiated()) 544 QUIC_BUG_IF(!config_.negotiated())
550 << ENDPOINT << "Handshake confirmed without parameter negotiation."; 545 << ENDPOINT << "Handshake confirmed without parameter negotiation.";
551 // Discard originally encrypted packets, since they can't be decrypted by 546 // Discard originally encrypted packets, since they can't be decrypted by
552 // the peer. 547 // the peer.
553 connection_->NeuterUnencryptedPackets(); 548 connection_->NeuterUnencryptedPackets();
554 break; 549 break;
555 550
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
807 802
808 size_t QuicSession::MaxAvailableStreams() const { 803 size_t QuicSession::MaxAvailableStreams() const {
809 return max_open_incoming_streams_ * kMaxAvailableStreamsMultiplier; 804 return max_open_incoming_streams_ * kMaxAvailableStreamsMultiplier;
810 } 805 }
811 806
812 bool QuicSession::IsIncomingStream(QuicStreamId id) const { 807 bool QuicSession::IsIncomingStream(QuicStreamId id) const {
813 return id % 2 != next_outgoing_stream_id_ % 2; 808 return id % 2 != next_outgoing_stream_id_ % 2;
814 } 809 }
815 810
816 } // namespace net 811 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_flags.cc ('k') | net/tools/quic/quic_client_session_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698