mirror of
https://github.com/matrix-construct/construct
synced 2024-12-29 00:44:17 +01:00
modules/console: Add 'net node'; default list the nodes.
This commit is contained in:
parent
9cf25a2d3b
commit
9db8b9d6a5
1 changed files with 64 additions and 0 deletions
|
@ -338,6 +338,7 @@ console_cmd__db_list(const string_view &line)
|
||||||
// net
|
// net
|
||||||
//
|
//
|
||||||
|
|
||||||
|
static bool console_cmd__net_node(const string_view &line);
|
||||||
static bool console_cmd__net_host(const string_view &line);
|
static bool console_cmd__net_host(const string_view &line);
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -353,11 +354,74 @@ console_cmd__net(const string_view &line)
|
||||||
case hash("host"):
|
case hash("host"):
|
||||||
return console_cmd__net_host(args);
|
return console_cmd__net_host(args);
|
||||||
|
|
||||||
|
case hash("node"):
|
||||||
|
return console_cmd__net_node(args);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw bad_command{};
|
throw bad_command{};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool console_cmd__net_node__default();
|
||||||
|
|
||||||
|
bool
|
||||||
|
console_cmd__net_node(const string_view &line)
|
||||||
|
{
|
||||||
|
const auto args
|
||||||
|
{
|
||||||
|
tokens_after(line, ' ', 0)
|
||||||
|
};
|
||||||
|
|
||||||
|
if(empty(line))
|
||||||
|
return console_cmd__net_node__default();
|
||||||
|
|
||||||
|
switch(hash(token(line, ' ', 0)))
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
throw bad_command{};
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
console_cmd__net_node__default()
|
||||||
|
{
|
||||||
|
for(const auto &p : server::nodes)
|
||||||
|
{
|
||||||
|
using std::setw;
|
||||||
|
using std::left;
|
||||||
|
using std::right;
|
||||||
|
|
||||||
|
const auto &host{p.first};
|
||||||
|
const auto &node{*p.second};
|
||||||
|
const net::ipport &ipp{node.remote};
|
||||||
|
|
||||||
|
out << setw(40) << right << host;
|
||||||
|
|
||||||
|
if(ipp)
|
||||||
|
out << ' ' << setw(22) << left << ipp;
|
||||||
|
else
|
||||||
|
out << ' ' << setw(22) << left << " ";
|
||||||
|
|
||||||
|
out << " "
|
||||||
|
<< " " << setw(2) << right << node.link_count() << " L"
|
||||||
|
<< " " << setw(2) << right << node.tag_count() << " T"
|
||||||
|
<< " " << setw(9) << right << node.write_total() << " UP"
|
||||||
|
<< " " << setw(9) << right << node.read_total() << " DN"
|
||||||
|
;
|
||||||
|
|
||||||
|
if(node.err_has() && node.err_msg())
|
||||||
|
out << " :" << node.err_msg();
|
||||||
|
else if(node.err_has())
|
||||||
|
out << " <unknown error>"_sv;
|
||||||
|
|
||||||
|
out << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static bool console_cmd__net_host_cache(const string_view &line);
|
static bool console_cmd__net_host_cache(const string_view &line);
|
||||||
static bool console_cmd__net_host__default(const string_view &line);
|
static bool console_cmd__net_host__default(const string_view &line);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue