Skip to content

Commit

Permalink
Merge pull request #10371 from Yan-waller/yj-wip-msgsimple-0720
Browse files Browse the repository at this point in the history
msg/simple: close the failed socket fds

#11052
  • Loading branch information
yuriw committed Sep 22, 2016
2 parents 3edc5c0 + ed8f696 commit b846597
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions src/msg/simple/Accepter.cc
Expand Up @@ -148,7 +148,10 @@ int Accepter::bind(const entity_addr_t &bind_addr, const set<int>& avoid_ports)

// It seems that binding completely failed, return with that exit status
if (rc < 0) {
lderr(msgr->cct) << "accepter.bind was unable to bind after " << conf->ms_bind_retry_count << " attempts: " << cpp_strerror(errno) << dendl;
lderr(msgr->cct) << "accepter.bind was unable to bind after " << conf->ms_bind_retry_count
<< " attempts: " << cpp_strerror(errno) << dendl;
::close(listen_sd);
listen_sd = -1;
return r;
}

Expand All @@ -159,6 +162,8 @@ int Accepter::bind(const entity_addr_t &bind_addr, const set<int>& avoid_ports)
if (rc < 0) {
rc = -errno;
lderr(msgr->cct) << "accepter.bind failed getsockname: " << cpp_strerror(rc) << dendl;
::close(listen_sd);
listen_sd = -1;
return rc;
}
listen_addr.set_sockaddr((sockaddr*)&ss);
Expand All @@ -168,7 +173,10 @@ int Accepter::bind(const entity_addr_t &bind_addr, const set<int>& avoid_ports)
rc = ::setsockopt(listen_sd, SOL_SOCKET, SO_RCVBUF, (void*)&size, sizeof(size));
if (rc < 0) {
rc = -errno;
lderr(msgr->cct) << "accepter.bind failed to set SO_RCVBUF to " << size << ": " << cpp_strerror(rc) << dendl;
lderr(msgr->cct) << "accepter.bind failed to set SO_RCVBUF to " << size
<< ": " << cpp_strerror(rc) << dendl;
::close(listen_sd);
listen_sd = -1;
return rc;
}
}
Expand All @@ -180,7 +188,9 @@ int Accepter::bind(const entity_addr_t &bind_addr, const set<int>& avoid_ports)
if (rc < 0) {
rc = -errno;
lderr(msgr->cct) << "accepter.bind unable to listen on " << listen_addr
<< ": " << cpp_strerror(rc) << dendl;
<< ": " << cpp_strerror(rc) << dendl;
::close(listen_sd);
listen_sd = -1;
return rc;
}

Expand Down

0 comments on commit b846597

Please sign in to comment.