]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/msg_types: operator<< for sockaddr
authorSage Weil <sage@redhat.com>
Fri, 6 May 2016 14:39:57 +0000 (10:39 -0400)
committerSage Weil <sage@redhat.com>
Wed, 11 May 2016 12:12:26 +0000 (08:12 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/msg/msg_types.cc
src/msg/msg_types.h

index b02db768bfb3f20580d762c30f7ce58a70182ab3..c966cea42a0912c6ebf4af22403516dbc41170a4 100644 (file)
@@ -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;
 }
index 4f9fddbf8acdea8060f6069949541b42805a020f..32177c9e240c2e03d23e243d06b28124fc36be2c 100644 (file)
@@ -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: