From 5d6735371b7b18dd1f0420bf988b6090b950ffe6 Mon Sep 17 00:00:00 2001 From: Anay Wadhera Date: Thu, 9 May 2024 11:13:34 -0700 Subject: [PATCH] Make sure we never generate a payload ID of 0. PiperOrigin-RevId: 632210716 --- connections/BUILD | 1 + connections/payload.cc | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/connections/BUILD b/connections/BUILD index 5d18267a..90cc11f3 100644 --- a/connections/BUILD +++ b/connections/BUILD @@ -81,6 +81,7 @@ cc_library( "//internal/platform:util", "//proto:connections_enums_cc_proto", "@com_google_absl//absl/functional:any_invocable", + "@com_google_absl//absl/random", "@com_google_absl//absl/types:variant", ], ) diff --git a/connections/payload.cc b/connections/payload.cc index 8b43133f..1f750f1a 100644 --- a/connections/payload.cc +++ b/connections/payload.cc @@ -17,16 +17,17 @@ #include #include #include +#include #include #include #include #include +#include "absl/random/random.h" #include "connections/payload_type.h" #include "internal/platform/byte_array.h" #include "internal/platform/file.h" #include "internal/platform/input_stream.h" -#include "internal/platform/prng.h" namespace nearby { namespace connections { @@ -138,7 +139,11 @@ void Payload::SetOffset(size_t offset) { size_t Payload::GetOffset() { return offset_; } // Generate Payload Id; to be passed to outgoing file constructor. -Payload::Id Payload::GenerateId() { return Prng().NextInt64(); } +Payload::Id Payload::GenerateId() { + absl::BitGen bitgen; + return absl::Uniform(absl::IntervalOpenClosed, bitgen, 0, + std::numeric_limits::max()); +} PayloadType Payload::FindType() const { return static_cast(content_.index());