From fe3abc0fe6f8a246853691e40883c62cb59d8288 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 6 May 2016 09:56:50 -0400 Subject: [PATCH] msg/simple/Pipe: use set_sockaddr for getpeername Signed-off-by: Sage Weil --- src/msg/simple/Pipe.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/msg/simple/Pipe.cc b/src/msg/simple/Pipe.cc index 53781b82b1735..5ff0a5748623f 100644 --- a/src/msg/simple/Pipe.cc +++ b/src/msg/simple/Pipe.cc @@ -305,12 +305,14 @@ int Pipe::accept() port = msgr->my_inst.addr.get_port(); // and peer's socket addr (they might not know their ip) - len = sizeof(socket_addr.ss_addr()); - r = ::getpeername(sd, (sockaddr*)&socket_addr.ss_addr(), &len); + sockaddr_storage ss; + len = sizeof(ss); + r = ::getpeername(sd, (sockaddr*)&ss, &len); if (r < 0) { ldout(msgr->cct,0) << "accept failed to getpeername " << cpp_strerror(errno) << dendl; goto fail_unlocked; } + socket_addr.set_sockaddr((sockaddr*)&ss); ::encode(socket_addr, addrs); r = tcp_write(addrs.c_str(), addrs.length()); -- 2.39.5