From: Sage Weil Date: Fri, 6 May 2016 14:39:57 +0000 (-0400) Subject: msg/msg_types: operator<< for sockaddr X-Git-Tag: v11.0.0~549^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=912c3b6ae57fa1aa7ecf94cd0a440eb59778c21c;p=ceph.git msg/msg_types: operator<< for sockaddr Signed-off-by: Sage Weil --- diff --git a/src/msg/msg_types.cc b/src/msg/msg_types.cc index b02db768bfb3..c966cea42a09 100644 --- a/src/msg/msg_types.cc +++ b/src/msg/msg_types.cc @@ -149,6 +149,25 @@ ostream& operator<<(ostream& out, const sockaddr_storage &ss) NI_NUMERICHOST | NI_NUMERICSERV); if (ss.ss_family == AF_INET6) return out << '[' << buf << "]:" << serv; - return out //<< ss.ss_family << ":" - << buf << ':' << serv; + return out << buf << ':' << serv; +} + +ostream& operator<<(ostream& out, const sockaddr *sa) +{ + char buf[NI_MAXHOST] = { 0 }; + char serv[NI_MAXSERV] = { 0 }; + size_t hostlen; + + if (sa->sa_family == AF_INET) + hostlen = sizeof(struct sockaddr_in); + else if (sa->sa_family == AF_INET6) + hostlen = sizeof(struct sockaddr_in6); + else + hostlen = sizeof(struct sockaddr_storage); + getnameinfo(sa, hostlen, buf, sizeof(buf), + serv, sizeof(serv), + NI_NUMERICHOST | NI_NUMERICSERV); + if (sa->sa_family == AF_INET6) + return out << '[' << buf << "]:" << serv; + return out << buf << ':' << serv; } diff --git a/src/msg/msg_types.h b/src/msg/msg_types.h index 4f9fddbf8acd..32177c9e240c 100644 --- a/src/msg/msg_types.h +++ b/src/msg/msg_types.h @@ -26,6 +26,7 @@ namespace ceph { } extern ostream& operator<<(ostream& out, const sockaddr_storage &ss); +extern ostream& operator<<(ostream& out, const sockaddr *sa); class entity_name_t { public: