aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/iomgr/tcp_server_posix.cc
diff options
context:
space:
mode:
authorGravatar Sree Kuchibhotla <sreek@google.com>2018-03-19 12:47:48 -0700
committerGravatar Sree Kuchibhotla <sreek@google.com>2018-03-19 12:47:48 -0700
commite4cae417b0a6639bf4df9123305adc16b764b617 (patch)
tree37c3e5e79e9e4ebba2d483ff7aa4a5b297867610 /src/core/lib/iomgr/tcp_server_posix.cc
parent373866da41cf86ec23fa3420b08a3d0a55151b58 (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.cc5
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));