]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async/AsyncMessenger: use set_sockaddr for getsockname
authorSage Weil <sage@redhat.com>
Fri, 6 May 2016 13:58:51 +0000 (09:58 -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/async/AsyncMessenger.cc

index c12ee8e21bb27bac9061ced49a305a67cfaa487d..ded2cedeca48cbcfb91ddcf1aadcd046d80be5bf 100644 (file)
@@ -158,8 +158,9 @@ int Processor::bind(const entity_addr_t &bind_addr, const set<int>& avoid_ports)
   }
 
   // what port did we get?
-  socklen_t llen = sizeof(listen_addr.ss_addr());
-  rc = getsockname(listen_sd, (sockaddr*)&listen_addr.ss_addr(), &llen);
+  sockaddr_storage ss;
+  socklen_t llen = sizeof(ss);
+  rc = getsockname(listen_sd, (sockaddr*)&ss, &llen);
   if (rc < 0) {
     rc = -errno;
     lderr(msgr->cct) << __func__ << " failed getsockname: " << cpp_strerror(rc) << dendl;
@@ -167,6 +168,7 @@ int Processor::bind(const entity_addr_t &bind_addr, const set<int>& avoid_ports)
     listen_sd = -1;
     return rc;
   }
+  listen_addr.set_sockaddr((sockaddr*)&ss);
 
   ldout(msgr->cct, 10) << __func__ << " bound to " << listen_addr << dendl;