]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/simple/Accepter: use set_sockaddr for getsockname
authorSage Weil <sage@redhat.com>
Fri, 6 May 2016 14:00:31 +0000 (10:00 -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/Accepter.cc

index 3d6f1f7a5e7990ae264289a74452446ba66aec32..73ef3e4c4dba0611f49c4eabef05b4baa2dc662b 100644 (file)
@@ -133,13 +133,15 @@ int Accepter::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) << "accepter.bind failed getsockname: " << cpp_strerror(rc) << dendl;
     return rc;
   }
+  listen_addr.set_sockaddr((sockaddr*)&ss);
   
   if (msgr->cct->_conf->ms_tcp_rcvbuf) {
     int size = msgr->cct->_conf->ms_tcp_rcvbuf;