]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/simple/Pipe: use set_sockaddr for getpeername
authorSage Weil <sage@redhat.com>
Fri, 6 May 2016 13:56:50 +0000 (09:56 -0400)
committerSage Weil <sage@redhat.com>
Wed, 11 May 2016 12:12:25 +0000 (08:12 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/msg/simple/Pipe.cc

index 53781b82b1735600be1e2ee974ea4238c3509d5b..5ff0a5748623fac5053a49af69955bf84de1fe72 100644 (file)
@@ -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());