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


The following commit(s) were added to refs/heads/quic-latest by this push:
     new 913767a  Randomize initial value for packet number
913767a is described below

commit 913767ae488c7f2414545adc22bcc5fd003edba4
Author: Masaori Koshiba <masa...@apache.org>
AuthorDate: Tue Sep 5 16:32:32 2017 +0900

    Randomize initial value for packet number
---
 iocore/net/quic/QUICPacket.cc                  | 14 ++++++++++++++
 iocore/net/quic/QUICPacket.h                   |  3 ++-
 iocore/net/quic/test/test_QUICPacketFactory.cc |  2 +-
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/iocore/net/quic/QUICPacket.cc b/iocore/net/quic/QUICPacket.cc
index 3ef847f..bfae22b 100644
--- a/iocore/net/quic/QUICPacket.cc
+++ b/iocore/net/quic/QUICPacket.cc
@@ -761,6 +761,20 @@ QUICPacketFactory::set_crypto_module(QUICCrypto *crypto)
 //
 // QUICPacketNumberGenerator
 //
+QUICPacketNumberGenerator::QUICPacketNumberGenerator()
+{
+  this->randomize();
+}
+
+QUICPacketNumber
+QUICPacketNumberGenerator::randomize()
+{
+  std::random_device rnd;
+  this->_current = rnd() & 0x7FFFFFFF;
+
+  return this->_current;
+}
+
 QUICPacketNumber
 QUICPacketNumberGenerator::next()
 {
diff --git a/iocore/net/quic/QUICPacket.h b/iocore/net/quic/QUICPacket.h
index 326a348..147f13d 100644
--- a/iocore/net/quic/QUICPacket.h
+++ b/iocore/net/quic/QUICPacket.h
@@ -170,7 +170,8 @@ private:
 class QUICPacketNumberGenerator
 {
 public:
-  QUICPacketNumberGenerator(QUICPacketNumber initial_number = 0) : 
_current(initial_number){};
+  QUICPacketNumberGenerator();
+  QUICPacketNumber randomize();
   QUICPacketNumber next();
 
 private:
diff --git a/iocore/net/quic/test/test_QUICPacketFactory.cc 
b/iocore/net/quic/test/test_QUICPacketFactory.cc
index b92144b..ab989ae 100644
--- a/iocore/net/quic/test/test_QUICPacketFactory.cc
+++ b/iocore/net/quic/test/test_QUICPacketFactory.cc
@@ -65,6 +65,6 @@ TEST_CASE("QUICPacketFactory_Create_ServerCleartextPacket", 
"[quic]")
   CHECK(packet->type() == QUICPacketType::SERVER_CLEARTEXT);
   CHECK(packet->connection_id() == 0x01020304);
   CHECK(memcmp(packet->payload(), raw, sizeof(raw)) == 0);
-  CHECK(packet->packet_number() == 0);
+  CHECK((packet->packet_number() & 0xFFFFFFFF80000000) == 0);
   CHECK(packet->version() == 0x11223344);
 }

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

Reply via email to