aboutsummaryrefslogtreecommitdiff
path: root/src/daemon/rpc_command_executor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/daemon/rpc_command_executor.cpp')
-rw-r--r--src/daemon/rpc_command_executor.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/daemon/rpc_command_executor.cpp b/src/daemon/rpc_command_executor.cpp
index c2d30fcce..839350522 100644
--- a/src/daemon/rpc_command_executor.cpp
+++ b/src/daemon/rpc_command_executor.cpp
@@ -156,7 +156,7 @@ t_rpc_command_executor::~t_rpc_command_executor()
}
}
-bool t_rpc_command_executor::print_peer_list() {
+bool t_rpc_command_executor::print_peer_list(bool white, bool gray, size_t limit) {
cryptonote::COMMAND_RPC_GET_PEER_LIST::request req;
cryptonote::COMMAND_RPC_GET_PEER_LIST::response res;
@@ -177,14 +177,24 @@ bool t_rpc_command_executor::print_peer_list() {
}
}
- for (auto & peer : res.white_list)
+ if (white)
{
- print_peer("white", peer);
+ auto peer = res.white_list.cbegin();
+ const auto end = limit ? peer + std::min(limit, res.white_list.size()) : res.white_list.cend();
+ for (; peer != end; ++peer)
+ {
+ print_peer("white", *peer);
+ }
}
- for (auto & peer : res.gray_list)
+ if (gray)
{
- print_peer("gray", peer);
+ auto peer = res.gray_list.cbegin();
+ const auto end = limit ? peer + std::min(limit, res.gray_list.size()) : res.gray_list.cend();
+ for (; peer != end; ++peer)
+ {
+ print_peer("gray", *peer);
+ }
}
return true;