14
14
#include < rpc/mining.h>
15
15
#include < rpc/protocol.h>
16
16
#include < rpc/request.h>
17
+ #include < tinyformat.h>
17
18
#include < util/strencodings.h>
18
19
#include < util/system.h>
19
20
#include < util/translation.h>
@@ -313,14 +314,15 @@ class NetinfoRequestHandler : public BaseRequestHandler
313
314
bool IsVersionSelected () const { return m_details_level == 3 || m_details_level == 4 ; }
314
315
bool m_is_asmap_on{false };
315
316
size_t m_max_addr_length{0 };
317
+ size_t m_max_age_length{4 };
316
318
size_t m_max_id_length{2 };
317
319
struct Peer {
318
320
std::string addr;
319
321
std::string sub_version;
320
322
std::string network;
323
+ std::string age;
321
324
double min_ping;
322
325
double ping;
323
- int64_t conn_time;
324
326
int64_t last_blck;
325
327
int64_t last_recv;
326
328
int64_t last_send;
@@ -399,10 +401,12 @@ class NetinfoRequestHandler : public BaseRequestHandler
399
401
const double min_ping{peer[" minping" ].isNull () ? -1 : peer[" minping" ].get_real ()};
400
402
const double ping{peer[" pingtime" ].isNull () ? -1 : peer[" pingtime" ].get_real ()};
401
403
const std::string addr{peer[" addr" ].get_str ()};
404
+ const std::string age{conn_time == 0 ? " " : ToString ((m_time_now - conn_time) / 60 )};
402
405
const std::string sub_version{peer[" subver" ].get_str ()};
403
- m_peers.push_back ({addr, sub_version, network, min_ping, ping, conn_time, last_blck, last_recv, last_send, last_trxn, peer_id, mapped_as, version, is_block_relay, is_outbound});
404
- m_max_id_length = std::max (ToString (peer_id).length (), m_max_id_length);
406
+ m_peers.push_back ({addr, sub_version, network, age, min_ping, ping, last_blck, last_recv, last_send, last_trxn, peer_id, mapped_as, version, is_block_relay, is_outbound});
405
407
m_max_addr_length = std::max (addr.length () + 1 , m_max_addr_length);
408
+ m_max_age_length = std::max (age.length (), m_max_age_length);
409
+ m_max_id_length = std::max (ToString (peer_id).length (), m_max_id_length);
406
410
m_is_asmap_on |= (mapped_as != 0 );
407
411
}
408
412
}
@@ -413,13 +417,13 @@ class NetinfoRequestHandler : public BaseRequestHandler
413
417
// Report detailed peer connections list sorted by direction and minimum ping time.
414
418
if (DetailsRequested () && !m_peers.empty ()) {
415
419
std::sort (m_peers.begin (), m_peers.end ());
416
- result += " Peer connections sorted by direction and min ping\n <-> relay net mping ping send recv txn blk age " ;
420
+ result += strprintf ( " Peer connections sorted by direction and min ping\n <-> relay net mping ping send recv txn blk %*s " , m_max_age_length, " age" ) ;
417
421
if (m_is_asmap_on) result += " asmap " ;
418
422
result += strprintf (" %*s %-*s%s\n " , m_max_id_length, " id" , IsAddressSelected () ? m_max_addr_length : 0 , IsAddressSelected () ? " address" : " " , IsVersionSelected () ? " version" : " " );
419
423
for (const Peer& peer : m_peers) {
420
424
std::string version{ToString (peer.version ) + peer.sub_version };
421
425
result += strprintf (
422
- " %3s %5s %5s%7s%7s%5s%5s%5s%5s%7s %*i %*s %-*s%s\n " ,
426
+ " %3s %5s %5s%7s%7s%5s%5s%5s%5s %*s %*i %*s %-*s%s\n " ,
423
427
peer.is_outbound ? " out" : " in" ,
424
428
peer.is_block_relay ? " block" : " full" ,
425
429
peer.network ,
@@ -429,7 +433,8 @@ class NetinfoRequestHandler : public BaseRequestHandler
429
433
peer.last_recv == 0 ? " " : ToString (m_time_now - peer.last_recv ),
430
434
peer.last_trxn == 0 ? " " : ToString ((m_time_now - peer.last_trxn ) / 60 ),
431
435
peer.last_blck == 0 ? " " : ToString ((m_time_now - peer.last_blck ) / 60 ),
432
- peer.conn_time == 0 ? " " : ToString ((m_time_now - peer.conn_time ) / 60 ),
436
+ m_max_age_length, // variable spacing
437
+ peer.age ,
433
438
m_is_asmap_on ? 7 : 0 , // variable spacing
434
439
m_is_asmap_on && peer.mapped_as != 0 ? ToString (peer.mapped_as ) : " " ,
435
440
m_max_id_length, // variable spacing
@@ -438,7 +443,7 @@ class NetinfoRequestHandler : public BaseRequestHandler
438
443
IsAddressSelected () ? peer.addr : " " ,
439
444
IsVersionSelected () && version != " 0" ? version : " " );
440
445
}
441
- result += " ms ms sec sec min min min \n\n " ;
446
+ result += strprintf ( " ms ms sec sec min min %*s \n\n " , m_max_age_length, " min " ) ;
442
447
}
443
448
444
449
// Report peer connection totals by type.
0 commit comments