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,
     };
   }

Reply via email to