diff options
author | est31 <MTest31@outlook.com> | 2016-03-14 10:18:29 +0100 |
---|---|---|
committer | est31 <MTest31@outlook.com> | 2016-03-15 17:20:09 +0100 |
commit | af30183124d40a969040d7de4b3a487feec466e4 (patch) | |
tree | 12cc4bdc529545014f8c8c9d0c3ed9d640c9ce2a /src/serverlist.cpp | |
parent | 2607b97b4f2b41767d7a010e9376d3e7f578cb71 (diff) | |
download | hax-minetest-server-af30183124d40a969040d7de4b3a487feec466e4.tar.gz hax-minetest-server-af30183124d40a969040d7de4b3a487feec466e4.zip |
Add option to not send pre v25 init packet
The legacy init packet (pre v25) sends information about the client's
password that a server could use to log in to other servers if the
username and password are the same. All the other benefits of SRP of
protocol v25 are missed if the legacy init packet is still sent during
connection creation.
This patch adds an option to not send the v25 init packet. Not sending
the v25 packet means breaking compat with pre v25 servers, but as the
option is not enabled by default, no servers are affected unless the
user explicitly flips the switch. More than 90% of the servers on the
serverlist support post v25 protocols.
The patch also fixes a bug with greying out of non compliant servers
being done wrongly, the min and max params were mixed.
Diffstat (limited to '')
-rw-r--r-- | src/serverlist.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 6e79b55a4..de7962a68 100644 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -69,8 +69,12 @@ std::vector<ServerListSpec> getLocal() std::vector<ServerListSpec> getOnline() { std::ostringstream geturl; + + u16 proto_version_min = g_settings->getFlag("send_pre_v25_init") ? + CLIENT_PROTOCOL_VERSION_MIN_LEGACY : CLIENT_PROTOCOL_VERSION_MIN; + geturl << g_settings->get("serverlist_url") << - "/list?proto_version_min=" << CLIENT_PROTOCOL_VERSION_MIN << + "/list?proto_version_min=" << proto_version_min << "&proto_version_max=" << CLIENT_PROTOCOL_VERSION_MAX; Json::Value root = fetchJsonValue(geturl.str(), NULL); |