This is an automated email from the ASF dual-hosted git repository. maskit 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 e319305 Fix eternal PING bug e319305 is described below commit e319305aa7bbfeded37fe5ad7cf244505c266e83 Author: Masakazu Kitajo <mas...@apache.org> AuthorDate: Fri Feb 8 11:43:03 2019 +0900 Fix eternal PING bug --- iocore/net/QUICNetVConnection.cc | 3 +++ iocore/net/quic/QUICPinger.cc | 4 +++- iocore/net/quic/QUICPinger.h | 3 --- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/iocore/net/QUICNetVConnection.cc b/iocore/net/QUICNetVConnection.cc index f7146cc..811d7e1 100644 --- a/iocore/net/QUICNetVConnection.cc +++ b/iocore/net/QUICNetVConnection.cc @@ -1411,6 +1411,9 @@ QUICNetVConnection::_packetize_frames(QUICEncryptionLevel level, uint64_t max_pa } } } + if (frame_count == 0) { + ack_only = false; + } this->_has_ack_only_packet_out = ack_only; diff --git a/iocore/net/quic/QUICPinger.cc b/iocore/net/quic/QUICPinger.cc index c34e820..01917c4 100644 --- a/iocore/net/quic/QUICPinger.cc +++ b/iocore/net/quic/QUICPinger.cc @@ -32,7 +32,9 @@ QUICPinger::request(QUICEncryptionLevel level) void QUICPinger::cancel(QUICEncryptionLevel level) { - --this->_need_to_fire[static_cast<int>(level)]; + if (this->_need_to_fire[static_cast<int>(level)] > 0) { + --this->_need_to_fire[static_cast<int>(level)]; + } } bool diff --git a/iocore/net/quic/QUICPinger.h b/iocore/net/quic/QUICPinger.h index 6658eb2..7251723 100644 --- a/iocore/net/quic/QUICPinger.h +++ b/iocore/net/quic/QUICPinger.h @@ -49,9 +49,6 @@ private: _encryption_level_filter() override { return { - QUICEncryptionLevel::INITIAL, - QUICEncryptionLevel::ZERO_RTT, - QUICEncryptionLevel::HANDSHAKE, QUICEncryptionLevel::ONE_RTT, }; }