Skip to content

Commit

Permalink
SO_DOMAIN do not support on IBM i, using getsockname instead (#8437) (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
hcho3 committed Nov 30, 2022
1 parent db14e3f commit 67b657d
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions include/xgboost/collective/socket.h
Expand Up @@ -287,11 +287,22 @@ class TCPSocket {
#elif defined(__APPLE__)
return domain_;
#elif defined(__unix__)
#ifndef __PASE__
std::int32_t domain;
socklen_t len = sizeof(domain);
xgboost_CHECK_SYS_CALL(
getsockopt(handle_, SOL_SOCKET, SO_DOMAIN, reinterpret_cast<char *>(&domain), &len), 0);
return ret_iafamily(domain);
#else
struct sockaddr sa;
socklen_t sizeofsa = sizeof(sa);
xgboost_CHECK_SYS_CALL(
getsockname(handle_, &sa, &sizeofsa), 0);
if (sizeofsa < sizeof(uchar_t)*2) {
return ret_iafamily(AF_INET);
}
return ret_iafamily(sa.sa_family);
#endif // __PASE__
#else
LOG(FATAL) << "Unknown platform.";
return ret_iafamily(AF_INET);
Expand Down

0 comments on commit 67b657d

Please sign in to comment.