mnode_nng: reformat and print NNG_OPT_URL

sadly NNG_OPT_URL is empty for the inproc server socket. need to walk the
list of listeners to query those?
This commit is contained in:
Florian Lüke 2024-12-29 21:32:47 +01:00
parent 24542b4a6d
commit b0c6cddea6

View file

@ -18,10 +18,12 @@ void mnode_nng_error(const std::string &msg, int rv)
void log_socket_info(nng_socket s, const std::string &info_text) void log_socket_info(nng_socket s, const std::string &info_text)
{ {
auto url = socket_get_string_opt(s, NNG_OPT_URL);
auto sockName = socket_get_string_opt(s, NNG_OPT_SOCKNAME); auto sockName = socket_get_string_opt(s, NNG_OPT_SOCKNAME);
auto localAddress = socket_get_string_opt(s, NNG_OPT_LOCADDR); auto localAddress = socket_get_string_opt(s, NNG_OPT_LOCADDR);
auto remoteAddress = socket_get_string_opt(s, NNG_OPT_REMADDR); auto remoteAddress = socket_get_string_opt(s, NNG_OPT_REMADDR);
spdlog::info("{}: {}={}", info_text, NNG_OPT_URL, url);
spdlog::info("{}: {}={}", info_text, NNG_OPT_SOCKNAME, sockName); spdlog::info("{}: {}={}", info_text, NNG_OPT_SOCKNAME, sockName);
spdlog::info("{}: {}={}", info_text, NNG_OPT_LOCADDR, localAddress); spdlog::info("{}: {}={}", info_text, NNG_OPT_LOCADDR, localAddress);
spdlog::info("{}: {}={}", info_text, NNG_OPT_REMADDR, remoteAddress); spdlog::info("{}: {}={}", info_text, NNG_OPT_REMADDR, remoteAddress);
@ -77,11 +79,11 @@ const char *nng_stat_type_to_string(int nng_stat_type)
} }
template <typename Value> template <typename Value>
std::string format_stat(int type, const char *name, const char *desc, std::uint64_t ts, Value value, int unit) std::string format_stat(int type, const char *name, const char *desc, std::uint64_t ts, Value value,
int unit)
{ {
return fmt::format("type={}, name={}, desc={}, ts={}, value={}, unit={}", return fmt::format("type={}, name={}, desc={}, ts={}, value={}, unit={}",
nng::nng_stat_type_to_string(type), nng::nng_stat_type_to_string(type), name, desc, ts, value,
name, desc, ts, value,
nng::nng_stat_unit_to_string(unit)); nng::nng_stat_unit_to_string(unit));
} }
@ -90,9 +92,11 @@ std::string format_stat(nng_stat *stat)
switch (nng_stat_type(stat)) switch (nng_stat_type(stat))
{ {
case NNG_STAT_BOOLEAN: case NNG_STAT_BOOLEAN:
return format_stat(nng_stat_type(stat), nng_stat_name(stat), nng_stat_desc(stat), nng_stat_timestamp(stat), nng_stat_value(stat), nng_stat_unit(stat)); return format_stat(nng_stat_type(stat), nng_stat_name(stat), nng_stat_desc(stat),
nng_stat_timestamp(stat), nng_stat_value(stat), nng_stat_unit(stat));
default: default:
return format_stat(nng_stat_type(stat), nng_stat_name(stat), nng_stat_desc(stat), nng_stat_timestamp(stat), nng_stat_value(stat), nng_stat_unit(stat)); return format_stat(nng_stat_type(stat), nng_stat_name(stat), nng_stat_desc(stat),
nng_stat_timestamp(stat), nng_stat_value(stat), nng_stat_unit(stat));
} }
} }
@ -108,17 +112,20 @@ int send_message_retry(nng_socket socket, nng_msg *msg, retry_predicate rp, cons
{ {
if (res != NNG_ETIMEDOUT) if (res != NNG_ETIMEDOUT)
{ {
spdlog::warn("send_message_retry: {} - send failed: {} (msg={})", debugInfo, nng_strerror(res), fmt::ptr(msg)); spdlog::warn("send_message_retry: {} - send failed: {} (msg={})", debugInfo,
nng_strerror(res), fmt::ptr(msg));
return res; return res;
} }
if (res == NNG_ETIMEDOUT) if (res == NNG_ETIMEDOUT)
spdlog::trace("send_message_retry: {} - send timeout (msg={})", debugInfo, fmt::ptr(msg)); spdlog::trace("send_message_retry: {} - send timeout (msg={})", debugInfo,
fmt::ptr(msg));
if (!rp(res)) if (!rp(res))
return res; return res;
} }
} while (res == NNG_ETIMEDOUT); }
while (res == NNG_ETIMEDOUT);
return 0; return 0;
} }
@ -139,39 +146,18 @@ int send_empty_message(nng_socket socket, retry_predicate rp)
return 0; return 0;
} }
nng_socket make_pair_socket(nng_duration timeout) nng_socket make_pair_socket(nng_duration timeout) { return make_socket(nng_pair0_open, timeout); }
{
return make_socket(nng_pair0_open, timeout);
}
nng_socket make_push_socket(nng_duration timeout) nng_socket make_push_socket(nng_duration timeout) { return make_socket(nng_push0_open, timeout); }
{
return make_socket(nng_push0_open, timeout);
}
nng_socket make_pull_socket(nng_duration timeout) nng_socket make_pull_socket(nng_duration timeout) { return make_socket(nng_pull0_open, timeout); }
{
return make_socket(nng_pull0_open, timeout);
}
nng_socket make_pub_socket(nng_duration timeout) nng_socket make_pub_socket(nng_duration timeout) { return make_socket(nng_pub0_open, timeout); }
{
return make_socket(nng_pub0_open, timeout);
}
nng_socket make_sub_socket(nng_duration timeout) nng_socket make_sub_socket(nng_duration timeout) { return make_socket(nng_sub0_open, timeout); }
{
return make_socket(nng_sub0_open, timeout);
}
nng_socket make_req_socket(nng_duration timeout) nng_socket make_req_socket(nng_duration timeout) { return make_socket(nng_req0_open, timeout); }
{
return make_socket(nng_req0_open, timeout);
}
nng_socket make_rep_socket(nng_duration timeout) nng_socket make_rep_socket(nng_duration timeout) { return make_socket(nng_rep0_open, timeout); }
{
return make_socket(nng_rep0_open, timeout);
}
} } // namespace mesytec::mnode::nng