diff options
Diffstat (limited to 'rpc/rpc-transport/socket/src/socket.c')
| -rw-r--r-- | rpc/rpc-transport/socket/src/socket.c | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c index 26fdc83dd65..88901e75e98 100644 --- a/rpc/rpc-transport/socket/src/socket.c +++ b/rpc/rpc-transport/socket/src/socket.c @@ -3202,6 +3202,19 @@ socket_connect (rpc_transport_t *this, int port)                          }                  } +                /* Make sure we are not vulnerable to someone setting +                 * net.ipv6.bindv6only to 1 so that gluster services are +                 * avalable over IPv4 & IPv6. +                 */ +                int disable_v6only = 0; + +                if (setsockopt (priv->sock, IPPROTO_IPV6, IPV6_V6ONLY, +                                (void *)&disable_v6only, +                                sizeof (disable_v6only)) < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Error disabling sockopt IPV6_V6ONLY: \"%s\"", +                                strerror (errno)); +                }                  if (priv->nodelay && (sa_family != AF_UNIX)) {                          ret = __socket_nodelay (priv->sock);  | 
