Avoid the use of abs64 in timedata

Github-Pull: #20141
Rebased-From: d1292f25f2
This commit is contained in:
Pieter Wuille 2020-10-12 17:36:51 -07:00 committed by fanquake
parent 5b2de04e7f
commit 0b64310fb6
No known key found for this signature in database
GPG key ID: 2EEB9F5CC09526C1

View file

@ -37,11 +37,6 @@ int64_t GetAdjustedTime()
return GetTime() + GetTimeOffset(); return GetTime() + GetTimeOffset();
} }
static int64_t abs64(int64_t n)
{
return (n >= 0 ? n : -n);
}
#define BITCOIN_TIMEDATA_MAX_SAMPLES 200 #define BITCOIN_TIMEDATA_MAX_SAMPLES 200
void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample)
@ -81,8 +76,8 @@ void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample)
int64_t nMedian = vTimeOffsets.median(); int64_t nMedian = vTimeOffsets.median();
std::vector<int64_t> vSorted = vTimeOffsets.sorted(); std::vector<int64_t> vSorted = vTimeOffsets.sorted();
// Only let other nodes change our time by so much // Only let other nodes change our time by so much
if (abs64(nMedian) <= std::max<int64_t>(0, gArgs.GetArg("-maxtimeadjustment", DEFAULT_MAX_TIME_ADJUSTMENT))) int64_t max_adjustment = std::max<int64_t>(0, gArgs.GetArg("-maxtimeadjustment", DEFAULT_MAX_TIME_ADJUSTMENT));
{ if (nMedian >= -max_adjustment && nMedian <= max_adjustment) {
nTimeOffset = nMedian; nTimeOffset = nMedian;
} }
else else
@ -94,9 +89,10 @@ 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 // If nobody has a time different than ours but within 5 minutes of ours, give a warning
bool fMatch = false; bool fMatch = false;
for (const int64_t nOffset : vSorted) for (const int64_t nOffset : vSorted) {
if (nOffset != 0 && abs64(nOffset) < 5 * 60) if (nOffset != 0 && nOffset > -5 * 60 && nOffset < 5 * 60)
fMatch = true; fMatch = true;
}
if (!fMatch) if (!fMatch)
{ {