Browse Source

Use cheaper entropy source for randomizing items to fetch

The random_device fails if not enough entropy is available. We do
not need high-quality entropy here, though, so let's switch to a
seed based on the current time in nanoseconds, XORed with the PID.
debian/1.8.y
Julian Andres Klode 4 years ago
parent
commit
420009e46c
  1. 5
      apt-pkg/acquire-item.cc

5
apt-pkg/acquire-item.cc

@ -33,6 +33,7 @@
#include <algorithm>
#include <ctime>
#include <chrono>
#include <iostream>
#include <memory>
#include <numeric>
@ -1526,8 +1527,8 @@ void pkgAcqMetaClearSig::QueueIndexes(bool const verify) /*{{{*/
can be as we shouldn't be telling the mirrors (and everyone else watching)
which is native/foreign arch, specific order of preference of translations, */
auto range_start = IndexTargets.begin();
std::random_device rd;
std::default_random_engine g(rd());
auto seed = (std::chrono::high_resolution_clock::now().time_since_epoch() / std::chrono::nanoseconds(1)) ^ getpid();
std::default_random_engine g(seed);
do {
auto const type = range_start->Option(IndexTarget::CREATED_BY);
auto const range_end = std::find_if_not(range_start, IndexTargets.end(),

Loading…
Cancel
Save