From b5f8de7bd2a0230814e0f8dc5226b8dec37392ea Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 16 Jan 2012 14:04:46 -0800 Subject: [PATCH] msgr: move operator<< for sockaddr_storage to msg_types.cc tcp.{cc,h} aren't built/linked cleanly. Signed-off-by: Sage Weil --- src/msg/msg_types.cc | 23 +++++++++++++++++++++++ src/msg/msg_types.h | 6 ++++++ src/msg/tcp.cc | 21 --------------------- src/msg/tcp.h | 2 -- 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/msg/msg_types.cc b/src/msg/msg_types.cc index 1fb645f93e42e..35da88b8b0f3e 100644 --- a/src/msg/msg_types.cc +++ b/src/msg/msg_types.cc @@ -88,3 +88,26 @@ bool entity_addr_t::parse(const char *s, const char **end) //cout << *this << std::endl; return true; } + + + +ostream& operator<<(ostream& out, const sockaddr_storage &ss) +{ + char buf[NI_MAXHOST] = { 0 }; + char serv[20] = { 0 }; + size_t hostlen; + + if (ss.ss_family == AF_INET) + hostlen = sizeof(struct sockaddr_in); + else if (ss.ss_family == AF_INET6) + hostlen = sizeof(struct sockaddr_in6); + else + hostlen = sizeof(struct sockaddr_storage); + getnameinfo((struct sockaddr *)&ss, hostlen, buf, sizeof(buf), + serv, sizeof(serv), + NI_NUMERICHOST | NI_NUMERICSERV); + if (ss.ss_family == AF_INET6) + return out << '[' << buf << "]:" << serv; + return out //<< ss.ss_family << ":" + << buf << ':' << serv; +} diff --git a/src/msg/msg_types.h b/src/msg/msg_types.h index b727d268ad9f0..679869511ad6a 100644 --- a/src/msg/msg_types.h +++ b/src/msg/msg_types.h @@ -20,6 +20,10 @@ #include "tcp.h" #include "include/encoding.h" + +extern ostream& operator<<(ostream& out, const sockaddr_storage &ss); + + class entity_name_t { public: __u8 _type; @@ -407,4 +411,6 @@ inline ostream& operator<<(ostream& out, const ceph_entity_inst &i) + + #endif diff --git a/src/msg/tcp.cc b/src/msg/tcp.cc index 7bb908b871d26..49421cedccec3 100644 --- a/src/msg/tcp.cc +++ b/src/msg/tcp.cc @@ -131,24 +131,3 @@ int tcp_write(CephContext *cct, int sd, const char *buf, int len) } return 0; } - -ostream& operator<<(ostream& out, const sockaddr_storage &ss) -{ - char buf[NI_MAXHOST] = { 0 }; - char serv[20] = { 0 }; - size_t hostlen; - - if (ss.ss_family == AF_INET) - hostlen = sizeof(struct sockaddr_in); - else if (ss.ss_family == AF_INET6) - hostlen = sizeof(struct sockaddr_in6); - else - hostlen = sizeof(struct sockaddr_storage); - getnameinfo((struct sockaddr *)&ss, hostlen, buf, sizeof(buf), - serv, sizeof(serv), - NI_NUMERICHOST | NI_NUMERICSERV); - if (ss.ss_family == AF_INET6) - return out << '[' << buf << "]:" << serv; - return out //<< ss.ss_family << ":" - << buf << ':' << serv; -} diff --git a/src/msg/tcp.h b/src/msg/tcp.h index 29f4a626d06ce..f98c1702a55f4 100644 --- a/src/msg/tcp.h +++ b/src/msg/tcp.h @@ -14,8 +14,6 @@ using std::ostream; class CephContext; -extern ostream& operator<<(ostream& out, const sockaddr_storage &ss); - extern int tcp_read(CephContext *cct, int sd, char *buf, int len, int timeout=-1); extern int tcp_read_wait(int sd, int timeout); extern int tcp_read_nonblocking(CephContext *cct, int sd, char *buf, int len); -- 2.47.3