diff options
author | Sage Weil <sage@newdream.net> | 2009-10-02 13:43:59 -0700 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2009-10-02 13:43:59 -0700 |
commit | 0ddaad3d51496ecdfc811c286a0587cddf7e0117 (patch) | |
tree | 8b523b7aa18bee9d506716e7ced8c71e0e703e5f /src/msg/tcp.h | |
parent | dd732cbfc1c92f0d8dba2743a979baad6685a98c (diff) | |
download | ceph-0ddaad3d51496ecdfc811c286a0587cddf7e0117.tar.gz |
msgr: use getnameinfo to format socket addresses
Diffstat (limited to 'src/msg/tcp.h')
-rw-r--r-- | src/msg/tcp.h | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/msg/tcp.h b/src/msg/tcp.h index dc27ef6bb0a..0a701a27f87 100644 --- a/src/msg/tcp.h +++ b/src/msg/tcp.h @@ -7,21 +7,26 @@ #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> +#include <sys/socket.h> +#include <netdb.h> using std::ostream; -inline ostream& operator<<(ostream& out, const sockaddr_in &a) +inline ostream& operator<<(ostream& out, const sockaddr_storage &ss) { - unsigned char *addr = (unsigned char*)&a.sin_addr.s_addr; - //out << "(" << a.sin_family << ")"; - out << (unsigned)addr[0] << "." - << (unsigned)addr[1] << "." - << (unsigned)addr[2] << "." - << (unsigned)addr[3] << ":" - << ntohs(a.sin_port); - return out; + char buf[NI_MAXHOST]; + getnameinfo((struct sockaddr *)&ss, sizeof(ss), buf, sizeof(buf), 0, 0, NI_NUMERICHOST); + return out << buf; } +inline ostream& operator<<(ostream& out, const sockaddr_in &ss) +{ + char buf[NI_MAXHOST]; + getnameinfo((struct sockaddr *)&ss, sizeof(ss), buf, sizeof(buf), 0, 0, NI_NUMERICHOST); + return out << buf; +} + + inline int tcp_read(int sd, char *buf, int len) { while (len > 0) { int got = ::recv( sd, buf, len, 0 ); |