From: Sage Weil Date: Fri, 6 May 2016 13:56:29 +0000 (-0400) Subject: msg/async: use set_sockaddr for getpeername X-Git-Tag: v11.0.0~549^2~22 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6f03a6d4551f0192d82d6345b58b8930e371015e;p=ceph.git msg/async: use set_sockaddr for getpeername Signed-off-by: Sage Weil --- diff --git a/src/msg/async/AsyncConnection.cc b/src/msg/async/AsyncConnection.cc index 0d7ca05d5d2..00e85103d84 100644 --- a/src/msg/async/AsyncConnection.cc +++ b/src/msg/async/AsyncConnection.cc @@ -1395,13 +1395,15 @@ ssize_t AsyncConnection::_process_connection() ::encode(async_msgr->get_myaddr(), bl); port = async_msgr->get_myaddr().get_port(); // and peer's socket addr (they might not know their ip) - socklen_t len = sizeof(socket_addr.ss_addr()); - r = ::getpeername(sd, (sockaddr*)&socket_addr.ss_addr(), &len); + sockaddr_storage ss; + socklen_t len = sizeof(ss); + r = ::getpeername(sd, (sockaddr*)&ss, &len); if (r < 0) { ldout(async_msgr->cct, 0) << __func__ << " failed to getpeername " << cpp_strerror(errno) << dendl; goto fail; } + socket_addr.set_sockaddr((sockaddr*)&ss); ::encode(socket_addr, bl); ldout(async_msgr->cct, 1) << __func__ << " sd=" << sd << " " << socket_addr << dendl;