aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/daemon/command_parser_executor.cpp14
-rw-r--r--src/daemon/rpc_command_executor.cpp13
-rw-r--r--src/daemon/rpc_command_executor.h2
3 files changed, 22 insertions, 7 deletions
diff --git a/src/daemon/command_parser_executor.cpp b/src/daemon/command_parser_executor.cpp
index 924447701..ed8efe895 100644
--- a/src/daemon/command_parser_executor.cpp
+++ b/src/daemon/command_parser_executor.cpp
@@ -51,12 +51,14 @@ bool t_command_parser_executor::print_peer_list(const std::vector<std::string>&
{
if (args.size() > 3)
{
- std::cout << "use: print_pl [white] [gray] [<limit>]" << std::endl;
+ std::cout << "use: print_pl [white] [gray] [<limit>] [pruned] [publicrpc]" << std::endl;
return true;
}
bool white = false;
bool gray = false;
+ bool pruned = false;
+ bool publicrpc = false;
size_t limit = 0;
for (size_t i = 0; i < args.size(); ++i)
{
@@ -68,6 +70,14 @@ bool t_command_parser_executor::print_peer_list(const std::vector<std::string>&
{
gray = true;
}
+ else if (args[i] == "pruned")
+ {
+ pruned = true;
+ }
+ else if (args[i] == "publicrpc")
+ {
+ publicrpc = true;
+ }
else if (!epee::string_tools::get_xtype_from_string(limit, args[i]))
{
std::cout << "unexpected argument: " << args[i] << std::endl;
@@ -76,7 +86,7 @@ bool t_command_parser_executor::print_peer_list(const std::vector<std::string>&
}
const bool print_both = !white && !gray;
- return m_executor.print_peer_list(white | print_both, gray | print_both, limit);
+ return m_executor.print_peer_list(white | print_both, gray | print_both, limit, pruned, publicrpc);
}
bool t_command_parser_executor::print_peer_list_stats(const std::vector<std::string>& args)
diff --git a/src/daemon/rpc_command_executor.cpp b/src/daemon/rpc_command_executor.cpp
index 4d3debed6..e9e8d4980 100644
--- a/src/daemon/rpc_command_executor.cpp
+++ b/src/daemon/rpc_command_executor.cpp
@@ -60,8 +60,13 @@ namespace {
}
}
- void print_peer(std::string const & prefix, cryptonote::peer const & peer)
+ void print_peer(std::string const & prefix, cryptonote::peer const & peer, bool pruned_only, bool publicrpc_only)
{
+ if (pruned_only && peer.pruning_seed == 0)
+ return;
+ if (publicrpc_only && peer.rpc_port == 0)
+ return;
+
time_t now;
time(&now);
time_t last_seen = static_cast<time_t>(peer.last_seen);
@@ -169,7 +174,7 @@ t_rpc_command_executor::~t_rpc_command_executor()
}
}
-bool t_rpc_command_executor::print_peer_list(bool white, bool gray, size_t limit) {
+bool t_rpc_command_executor::print_peer_list(bool white, bool gray, size_t limit, bool pruned_only, bool publicrpc_only) {
cryptonote::COMMAND_RPC_GET_PEER_LIST::request req;
cryptonote::COMMAND_RPC_GET_PEER_LIST::response res;
@@ -196,7 +201,7 @@ bool t_rpc_command_executor::print_peer_list(bool white, bool gray, size_t limit
const auto end = limit ? peer + std::min(limit, res.white_list.size()) : res.white_list.cend();
for (; peer != end; ++peer)
{
- print_peer("white", *peer);
+ print_peer("white", *peer, pruned_only, publicrpc_only);
}
}
@@ -206,7 +211,7 @@ bool t_rpc_command_executor::print_peer_list(bool white, bool gray, size_t limit
const auto end = limit ? peer + std::min(limit, res.gray_list.size()) : res.gray_list.cend();
for (; peer != end; ++peer)
{
- print_peer("gray", *peer);
+ print_peer("gray", *peer, pruned_only, publicrpc_only);
}
}
diff --git a/src/daemon/rpc_command_executor.h b/src/daemon/rpc_command_executor.h
index f3ed48319..917eae239 100644
--- a/src/daemon/rpc_command_executor.h
+++ b/src/daemon/rpc_command_executor.h
@@ -69,7 +69,7 @@ public:
~t_rpc_command_executor();
- bool print_peer_list(bool white = true, bool gray = true, size_t limit = 0);
+ bool print_peer_list(bool white = true, bool gray = true, size_t limit = 0, bool pruned_only = false, bool publicrpc_only = false);
bool print_peer_list_stats();