diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index ff88ce5a2..4af232f42 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -835,11 +835,12 @@ protocol_version_min (Protocol version minimum) int 1 1 65535 # Files that are not present will be fetched the usual way. remote_media (Remote media) string -# Enable/disable running an IPv6 server. +# Enable IPv6 support for server. +# Note that clients will be able to connect with both IPv4 and IPv6. # Ignored if bind_address is set. # # Requires: enable_ipv6 -ipv6_server (IPv6 server) bool false +ipv6_server (IPv6 server) bool true [*Server Security] diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index ff325a8ff..b5e9a203b 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -422,7 +422,7 @@ void set_default_settings() // Network settings->setDefault("enable_ipv6", "true"); - settings->setDefault("ipv6_server", "false"); + settings->setDefault("ipv6_server", "true"); settings->setDefault("max_packets_per_iteration", "1024"); settings->setDefault("port", "30000"); settings->setDefault("strict_protocol_version_checking", "false"); diff --git a/src/network/socket.cpp b/src/network/socket.cpp index 4c2056da7..397b5ea51 100644 --- a/src/network/socket.cpp +++ b/src/network/socket.cpp @@ -128,7 +128,8 @@ void UDPSocket::Bind(Address addr) if (setsockopt(m_handle, IPPROTO_IPV6, IPV6_V6ONLY, reinterpret_cast(&value), sizeof(value)) != 0) { auto errmsg = SOCKET_ERR_STR(LAST_SOCKET_ERR()); - errorstream << "Failed to disable V6ONLY: " << errmsg << std::endl; + errorstream << "Failed to disable V6ONLY: " << errmsg + << "\nTry disabling ipv6_server to fix this." << std::endl; throw SocketException(errmsg); } }