diff options
author | 2018-03-19 12:47:48 -0700 | |
---|---|---|
committer | 2018-03-19 12:47:48 -0700 | |
commit | e4cae417b0a6639bf4df9123305adc16b764b617 (patch) | |
tree | 37c3e5e79e9e4ebba2d483ff7aa4a5b297867610 /src/core/lib/iomgr/tcp_server_posix.cc | |
parent | 373866da41cf86ec23fa3420b08a3d0a55151b58 (diff) |
enable SO_REUSEPORT option in ipv6 too
Diffstat (limited to 'src/core/lib/iomgr/tcp_server_posix.cc')
-rw-r--r-- | src/core/lib/iomgr/tcp_server_posix.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/lib/iomgr/tcp_server_posix.cc b/src/core/lib/iomgr/tcp_server_posix.cc index 1d9276a560..631cd07f67 100644 --- a/src/core/lib/iomgr/tcp_server_posix.cc +++ b/src/core/lib/iomgr/tcp_server_posix.cc @@ -61,6 +61,11 @@ static bool has_so_reuseport = false; static void init(void) { #ifndef GPR_MANYLINUX1 int s = socket(AF_INET, SOCK_STREAM, 0); + if (s < 0) { + /* This might be an ipv6-only environment in which case 'socket(AF_INET,..)' + call would fail. Try creating IPv6 socket in that case */ + s = socket(AF_INET6, SOCK_STREAM, 0); + } if (s >= 0) { has_so_reuseport = GRPC_LOG_IF_ERROR("check for SO_REUSEPORT", grpc_set_socket_reuse_port(s, 1)); |