From 36da72b6985cd07f750ce7d4ebd28f30bc5ef390 Mon Sep 17 00:00:00 2001
From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Date: Thu, 15 Mar 2018 12:21:33 -0400
Subject: [PATCH] datatransfer: generate unique transfer ids

- simplifies client implementations
- can be used as a persistent id for future tracking of unfinished transfers

Change-Id: Ib03b2e2a5ec196735a0e21bdc99801894d9dfabe
---
 src/data_transfer.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/data_transfer.cpp b/src/data_transfer.cpp
index faa4e55986..d3124cb15e 100644
--- a/src/data_transfer.cpp
+++ b/src/data_transfer.cpp
@@ -39,13 +39,16 @@
 #include <atomic>
 #include <cstdlib> // mkstemp
 
+#include <opendht/rng.h>
+
 namespace ring {
 
 static DRing::DataTransferId
 generateUID()
 {
-    static DRing::DataTransferId lastId = 0;
-    return lastId++;
+    thread_local dht::crypto::random_device rd;
+    std::uniform_int_distribution<DRing::DataTransferId> dist;
+    return dist(rd);
 }
 
 //==============================================================================
-- 
GitLab