Skip to content

Commit b054c46

Browse files
committed
refactor: Convert ping time from double to int64_t
1 parent ac5c5d0 commit b054c46

File tree

6 files changed

+13
-5
lines changed

6 files changed

+13
-5
lines changed

src/net.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ void CNode::copyStats(CNodeStats &stats, const std::vector<bool> &m_asmap)
555555
}
556556

557557
// Raw ping time is in microseconds, but show it to user as whole seconds (Bitcoin users should be well used to small numbers with many decimal places by now :)
558-
stats.dPingTime = (((double)nPingUsecTime) / 1e6);
558+
stats.m_ping_usec = nPingUsecTime;
559559
stats.dMinPing = (((double)nMinPingUsecTime) / 1e6);
560560
stats.dPingWait = (((double)nPingUsecWait) / 1e6);
561561

src/net.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,7 @@ class CNodeStats
596596
mapMsgCmdSize mapRecvBytesPerMsgCmd;
597597
NetPermissionFlags m_permissionFlags;
598598
bool m_legacyWhitelisted;
599-
double dPingTime;
599+
int64_t m_ping_usec;
600600
double dPingWait;
601601
double dMinPing;
602602
CAmount minFeeFilter;

src/qt/guiutil.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,11 @@ QString formatPingTime(double dPingTime)
778778
return (dPingTime == std::numeric_limits<int64_t>::max()/1e6 || dPingTime == 0) ? QObject::tr("N/A") : QString(QObject::tr("%1 ms")).arg(QString::number((int)(dPingTime * 1000), 10));
779779
}
780780

781+
QString formatPingTime(int64_t ping_usec)
782+
{
783+
return (ping_usec == std::numeric_limits<int64_t>::max() || ping_usec == 0) ? QObject::tr("N/A") : QString(QObject::tr("%1 ms")).arg(QString::number((int)(ping_usec / 1000), 10));
784+
}
785+
781786
QString formatTimeOffset(int64_t nTimeOffset)
782787
{
783788
return QString(QObject::tr("%1 s")).arg(QString::number((int)nTimeOffset, 10));

src/qt/guiutil.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,9 @@ namespace GUIUtil
205205
/* Format a CNodeCombinedStats.dPingTime into a user-readable string or display N/A, if 0*/
206206
QString formatPingTime(double dPingTime);
207207

208+
/* Format a CNodeStats.m_ping_usec into a user-readable string or display N/A, if 0*/
209+
QString formatPingTime(int64_t ping_usec);
210+
208211
/* Format a CNodeCombinedStats.nTimeOffset into a user-readable string. */
209212
QString formatTimeOffset(int64_t nTimeOffset);
210213

src/qt/rpcconsole.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1109,7 +1109,7 @@ void RPCConsole::updateNodeDetail(const CNodeCombinedStats *stats)
11091109
ui->peerBytesSent->setText(GUIUtil::formatBytes(stats->nodeStats.nSendBytes));
11101110
ui->peerBytesRecv->setText(GUIUtil::formatBytes(stats->nodeStats.nRecvBytes));
11111111
ui->peerConnTime->setText(GUIUtil::formatDurationStr(GetSystemTimeInSeconds() - stats->nodeStats.nTimeConnected));
1112-
ui->peerPingTime->setText(GUIUtil::formatPingTime(stats->nodeStats.dPingTime));
1112+
ui->peerPingTime->setText(GUIUtil::formatPingTime(stats->nodeStats.m_ping_usec));
11131113
ui->peerPingWait->setText(GUIUtil::formatPingTime(stats->nodeStats.dPingWait));
11141114
ui->peerMinPing->setText(GUIUtil::formatPingTime(stats->nodeStats.dMinPing));
11151115
ui->timeoffset->setText(GUIUtil::formatTimeOffset(stats->nodeStats.nTimeOffset));

src/rpc/net.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ static UniValue getpeerinfo(const JSONRPCRequest& request)
165165
obj.pushKV("bytesrecv", stats.nRecvBytes);
166166
obj.pushKV("conntime", stats.nTimeConnected);
167167
obj.pushKV("timeoffset", stats.nTimeOffset);
168-
if (stats.dPingTime > 0.0)
169-
obj.pushKV("pingtime", stats.dPingTime);
168+
if (stats.m_ping_usec > 0)
169+
obj.pushKV("pingtime", stats.m_ping_usec / 1e6);
170170
if (stats.dMinPing < static_cast<double>(std::numeric_limits<int64_t>::max())/1e6)
171171
obj.pushKV("minping", stats.dMinPing);
172172
if (stats.dPingWait > 0.0)

0 commit comments

Comments
 (0)