From f88f9ddee28a2c6c9c681b22b360f353396698a0 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Mon, 12 Oct 2020 17:36:51 -0700 Subject: [PATCH 1/2] Avoid the use of abs64 in timedata Cherry-picked from: d1292f25 --- src/timedata.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/timedata.cpp b/src/timedata.cpp index 2ff6437c7..40d4c743f 100644 --- a/src/timedata.cpp +++ b/src/timedata.cpp @@ -38,11 +38,6 @@ int64_t GetAdjustedTime() return GetTime() + GetTimeOffset(); } -static int64_t abs64(int64_t n) -{ - return (n >= 0 ? n : -n); -} - #define BITCOIN_TIMEDATA_MAX_SAMPLES 200 void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) @@ -82,8 +77,8 @@ void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) int64_t nMedian = vTimeOffsets.median(); std::vector vSorted = vTimeOffsets.sorted(); // Only let other nodes change our time by so much - if (abs64(nMedian) <= std::max(0, GetArg("-maxtimeadjustment", DEFAULT_MAX_TIME_ADJUSTMENT))) - { + int64_t max_adjustment = std::max(0, GetArg("-maxtimeadjustment", DEFAULT_MAX_TIME_ADJUSTMENT)); + if (nMedian >= -max_adjustment && nMedian <= max_adjustment) { nTimeOffset = nMedian; } else @@ -95,9 +90,9 @@ void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) { // If nobody has a time different than ours but within 5 minutes of ours, give a warning bool fMatch = false; - BOOST_FOREACH(int64_t nOffset, vSorted) - if (nOffset != 0 && abs64(nOffset) < 5 * 60) - fMatch = true; + for (const int64_t nOffset : vSorted) { + if (nOffset != 0 && nOffset > -5 * 60 && nOffset < 5 * 60) fMatch = true; + } if (!fMatch) { @@ -108,11 +103,11 @@ void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) } } } - + BOOST_FOREACH(int64_t n, vSorted) LogPrint("net", "%+d ", n); LogPrint("net", "| "); - + LogPrint("net", "nTimeOffset = %+d (%+d minutes)\n", nTimeOffset, nTimeOffset/60); } } From 846812cdde92ed1c36cbafdf74b7457fbc42d343 Mon Sep 17 00:00:00 2001 From: Patrick Lodder Date: Wed, 3 Jul 2024 12:35:17 -0400 Subject: [PATCH 2/2] cleanup: remove BOOST_FOREACH from timedata.cpp --- src/timedata.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/timedata.cpp b/src/timedata.cpp index 40d4c743f..84add1acb 100644 --- a/src/timedata.cpp +++ b/src/timedata.cpp @@ -15,8 +15,6 @@ #include "utilstrencodings.h" #include "warnings.h" -#include - static CCriticalSection cs_nTimeOffset; static int64_t nTimeOffset = 0; @@ -104,8 +102,10 @@ void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) } } - BOOST_FOREACH(int64_t n, vSorted) + for (int64_t n : vSorted) { LogPrint("net", "%+d ", n); + } + LogPrint("net", "| "); LogPrint("net", "nTimeOffset = %+d (%+d minutes)\n", nTimeOffset, nTimeOffset/60);