You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ma...@apache.org on 2017/10/11 07:50:51 UTC

[trafficserver] 18/25: Postpone processing protected packets if handshake is not completed

This is an automated email from the ASF dual-hosted git repository.

maskit pushed a commit to branch quic-05
in repository https://gitbox.apache.org/repos/asf/trafficserver.git

commit 14b84f1b091443ea126f42f0b7a6695dd7085409
Author: Masakazu Kitajo <ma...@apache.org>
AuthorDate: Thu Oct 5 00:33:53 2017 -0700

    Postpone processing protected packets if handshake is not completed
    
    There's no guarantee that protected packets arrive after handshake completion
    because actual stream data is not processed on PACKET_READ_READY events.
    
    (cherry picked from commit 51825180400fbc25a756ed45854ab3f20740cfa5)
---
 iocore/net/QUICNetVConnection.cc | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/iocore/net/QUICNetVConnection.cc b/iocore/net/QUICNetVConnection.cc
index 5261450..cd2e832 100644
--- a/iocore/net/QUICNetVConnection.cc
+++ b/iocore/net/QUICNetVConnection.cc
@@ -399,6 +399,12 @@ QUICNetVConnection::state_handshake(int event, Event *data)
       error = this->_state_handshake_process_zero_rtt_protected_packet(std::move(p));
       break;
     }
+    case QUICPacketType::ONE_RTT_PROTECTED_KEY_PHASE_0:
+    case QUICPacketType::ONE_RTT_PROTECTED_KEY_PHASE_1:
+      // Postpone processing the packet
+      this->push_packet(std::move(p));
+      this_ethread()->schedule_imm_local(this, event);
+      break;
     default:
       error = QUICErrorUPtr(new QUICConnectionError(QUICErrorClass::QUIC_TRANSPORT, QUICErrorCode::INTERNAL_ERROR));
       break;

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.