mirror of
https://github.com/savoirfairelinux/opendht.git
synced 2026-11-08 04:21:51 +00:00
sockaddr: add fmt formatter
This commit is contained in:
1 parent
6cfede0868
commit
6919df592f
2 files changed
+24
-5
No files matched your search
+10
-5
@@ -103,21 +103,26 @@ SockAddr::setAddress(const char* address)
|
||||
throw std::runtime_error(std::string("Can't parse IP address: ") + strerror(errno));
|
||||
}
|
||||
|
||||
std::string
|
||||
print_addr(const sockaddr* sa, socklen_t slen)
|
||||
void print_addr(std::ostream& out, const sockaddr* sa, socklen_t slen)
|
||||
{
|
||||
char hbuf[NI_MAXHOST];
|
||||
char sbuf[NI_MAXSERV];
|
||||
std::ostringstream out;
|
||||
if (sa and slen and !getnameinfo(sa, slen, hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV)) {
|
||||
if (sa->sa_family == AF_INET6)
|
||||
out << "[" << hbuf << "]";
|
||||
out << '[' << hbuf << ']';
|
||||
else
|
||||
out << hbuf;
|
||||
if (std::strcmp(sbuf, "0"))
|
||||
out << ":" << sbuf;
|
||||
out << ':' << sbuf;
|
||||
} else
|
||||
out << "[invalid address]";
|
||||
}
|
||||
|
||||
std::string
|
||||
print_addr(const sockaddr* sa, socklen_t slen)
|
||||
{
|
||||
std::ostringstream out;
|
||||
print_addr(out, sa, slen);
|
||||
return out.str();
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user