This is an automated email from the ASF dual-hosted git repository. masaori pushed a commit to branch quic-latest in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 864da3bde6765bc17943d8654010dd02635bc70c Author: Masaori Koshiba <[email protected]> AuthorDate: Thu Apr 5 12:19:06 2018 +0900 Fix QUICHandshake::is_version_negotiated() To do not send ACK frame if VRESION NEGOTIATION packet was sent. --- iocore/net/QUICNetVConnection.cc | 7 +++---- iocore/net/quic/QUICHandshake.cc | 3 ++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/iocore/net/QUICNetVConnection.cc b/iocore/net/QUICNetVConnection.cc index e55e524..4fcecd3 100644 --- a/iocore/net/QUICNetVConnection.cc +++ b/iocore/net/QUICNetVConnection.cc @@ -844,13 +844,12 @@ QUICNetVConnection::_state_handshake_process_initial_packet(QUICPacketUPtr packe // Start handshake QUICErrorUPtr error = this->_handshake_handler->start(packet.get(), &this->_packet_factory); + + // If version negotiation was failed and VERSION NEGOTIATION packet was sent, nothing to do. if (this->_handshake_handler->is_version_negotiated()) { error = this->_recv_and_ack(std::move(packet)); - } else { - // Perhaps response packets for initial packet were lost. Pass packet to _recv_and_ack to send ack to the initial packet. - // Stream data will be discarded by offset mismatch. - error = this->_recv_and_ack(std::move(packet)); } + return error; } diff --git a/iocore/net/quic/QUICHandshake.cc b/iocore/net/quic/QUICHandshake.cc index 94b431e..37ec334 100644 --- a/iocore/net/quic/QUICHandshake.cc +++ b/iocore/net/quic/QUICHandshake.cc @@ -186,7 +186,8 @@ QUICHandshake::negotiate_version(const QUICPacket *vn, QUICPacketFactory *packet bool QUICHandshake::is_version_negotiated() const { - return (this->_version_negotiator->status() == QUICVersionNegotiationStatus::NEGOTIATED); + return (this->_version_negotiator->status() == QUICVersionNegotiationStatus::NEGOTIATED || + this->_version_negotiator->status() == QUICVersionNegotiationStatus::VALIDATED); } bool -- To stop receiving notification emails like this one, please contact [email protected].
