You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by sc...@apache.org on 2018/03/02 07:56:56 UTC
[trafficserver] branch quic-latest updated: QUIC: Ensure switch to
closed state once
This is an automated email from the ASF dual-hosted git repository.
scw00 pushed a commit to branch quic-latest
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/quic-latest by this push:
new 1d7d681 QUIC: Ensure switch to closed state once
1d7d681 is described below
commit 1d7d681cd5a6da686d88f066ce3897ad1a0b8c53
Author: scw00 <sc...@apache.org>
AuthorDate: Fri Mar 2 14:13:07 2018 +0800
QUIC: Ensure switch to closed state once
---
iocore/net/QUICNetVConnection.cc | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/iocore/net/QUICNetVConnection.cc b/iocore/net/QUICNetVConnection.cc
index f123c43..fcf57cf 100644
--- a/iocore/net/QUICNetVConnection.cc
+++ b/iocore/net/QUICNetVConnection.cc
@@ -465,13 +465,16 @@ QUICNetVConnection::handle_frame(std::shared_ptr<const QUICFrame> frame)
break;
case QUICFrameType::APPLICATION_CLOSE:
case QUICFrameType::CONNECTION_CLOSE:
- if (this->handler == reinterpret_cast<NetVConnHandler>(&QUICNetVConnection::state_connection_closing) ||
+ if (this->handler == reinterpret_cast<NetVConnHandler>(&QUICNetVConnection::state_connection_closed) ||
this->handler == reinterpret_cast<NetVConnHandler>(&QUICNetVConnection::state_connection_draining)) {
- this->_switch_to_close_state();
- } else {
- this->_switch_to_draining_state(QUICConnectionErrorUPtr(
- new QUICConnectionError(std::static_pointer_cast<const QUICApplicationCloseFrame>(frame)->error_code())));
+ return error;
}
+
+ // 7.9.1. Closing and Draining Connection States
+ // An endpoint MAY transition from the closing period to the draining period if it can confirm that its peer is also closing or
+ // draining. Receiving a closing frame is sufficient confirmation, as is receiving a stateless reset.
+ this->_switch_to_draining_state(QUICConnectionErrorUPtr(
+ new QUICConnectionError(std::static_pointer_cast<const QUICApplicationCloseFrame>(frame)->error_code())));
break;
default:
QUICConDebug("Unexpected frame type: %02x", static_cast<unsigned int>(frame->type()));
--
To stop receiving notification emails like this one, please contact
scw00@apache.org.