mirror of
https://github.com/minetest/minetest.git
synced 2024-11-27 10:03:45 +01:00
Make strict and non-strict protocol version checking to work more like expected
This commit is contained in:
parent
420de7ad5e
commit
96a286dcf5
@ -139,8 +139,8 @@
|
|||||||
#motd = Welcome to this awesome Minetest server!
|
#motd = Welcome to this awesome Minetest server!
|
||||||
# Maximum number of players connected simultaneously
|
# Maximum number of players connected simultaneously
|
||||||
#max_users = 100
|
#max_users = 100
|
||||||
# Set to false to allow old clients to connect
|
# Set to true to disallow old clients from connecting
|
||||||
#strict_protocol_version_checking = true
|
#strict_protocol_version_checking = false
|
||||||
# Set to true to enable creative mode (unlimited inventory)
|
# Set to true to enable creative mode (unlimited inventory)
|
||||||
#creative_mode = false
|
#creative_mode = false
|
||||||
# Enable players getting damage and dying
|
# Enable players getting damage and dying
|
||||||
|
@ -111,7 +111,7 @@ void set_default_settings(Settings *settings)
|
|||||||
settings->setDefault("default_game", "minetest");
|
settings->setDefault("default_game", "minetest");
|
||||||
settings->setDefault("motd", "");
|
settings->setDefault("motd", "");
|
||||||
settings->setDefault("max_users", "100");
|
settings->setDefault("max_users", "100");
|
||||||
settings->setDefault("strict_protocol_version_checking", "true");
|
settings->setDefault("strict_protocol_version_checking", "false");
|
||||||
settings->setDefault("creative_mode", "false");
|
settings->setDefault("creative_mode", "false");
|
||||||
settings->setDefault("enable_damage", "true");
|
settings->setDefault("enable_damage", "true");
|
||||||
settings->setDefault("only_peaceful_mobs", "false");
|
settings->setDefault("only_peaceful_mobs", "false");
|
||||||
|
@ -2069,25 +2069,11 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
|
|||||||
|
|
||||||
getClient(peer_id)->net_proto_version = net_proto_version;
|
getClient(peer_id)->net_proto_version = net_proto_version;
|
||||||
|
|
||||||
if(net_proto_version == 0)
|
|
||||||
{
|
|
||||||
actionstream<<"Server: An old tried to connect from "<<addr_s
|
|
||||||
<<std::endl;
|
|
||||||
SendAccessDenied(m_con, peer_id, std::wstring(
|
|
||||||
L"Your client's version is not supported.\n"
|
|
||||||
L"Server version is ")
|
|
||||||
+ narrow_to_wide(VERSION_STRING) + L"."
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(g_settings->getBool("strict_protocol_version_checking"))
|
|
||||||
{
|
|
||||||
if(net_proto_version < SERVER_PROTOCOL_VERSION_MIN ||
|
if(net_proto_version < SERVER_PROTOCOL_VERSION_MIN ||
|
||||||
net_proto_version > SERVER_PROTOCOL_VERSION_MAX)
|
net_proto_version > SERVER_PROTOCOL_VERSION_MAX)
|
||||||
{
|
{
|
||||||
actionstream<<"Server: A mismatched client tried to connect"
|
actionstream<<"Server: A mismatched client tried to connect from "<<addr_s
|
||||||
<<" from "<<addr_s<<std::endl;
|
<<std::endl;
|
||||||
SendAccessDenied(m_con, peer_id, std::wstring(
|
SendAccessDenied(m_con, peer_id, std::wstring(
|
||||||
L"Your client's version is not supported.\n"
|
L"Your client's version is not supported.\n"
|
||||||
L"Server version is ")
|
L"Server version is ")
|
||||||
@ -2103,6 +2089,26 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
|
|||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(g_settings->getBool("strict_protocol_version_checking"))
|
||||||
|
{
|
||||||
|
if(net_proto_version != LATEST_PROTOCOL_VERSION)
|
||||||
|
{
|
||||||
|
actionstream<<"Server: A mismatched (strict) client tried to "
|
||||||
|
<<"connect from "<<addr_s<<std::endl;
|
||||||
|
SendAccessDenied(m_con, peer_id, std::wstring(
|
||||||
|
L"Your client's version is not supported.\n"
|
||||||
|
L"Server version is ")
|
||||||
|
+ narrow_to_wide(VERSION_STRING) + L",\n"
|
||||||
|
+ L"server's PROTOCOL_VERSION (strict) is "
|
||||||
|
+ narrow_to_wide(itos(LATEST_PROTOCOL_VERSION))
|
||||||
|
+ L", client's PROTOCOL_VERSION is "
|
||||||
|
+ narrow_to_wide(itos(min_net_proto_version))
|
||||||
|
+ L"..."
|
||||||
|
+ narrow_to_wide(itos(max_net_proto_version))
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2343,8 +2349,8 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
|
|||||||
// Warnings about protocol version can be issued here
|
// Warnings about protocol version can be issued here
|
||||||
if(getClient(peer_id)->net_proto_version < LATEST_PROTOCOL_VERSION)
|
if(getClient(peer_id)->net_proto_version < LATEST_PROTOCOL_VERSION)
|
||||||
{
|
{
|
||||||
SendChatMessage(peer_id, L"# Server: WARNING: YOUR CLIENT IS OLD "
|
SendChatMessage(peer_id, L"# Server: WARNING: YOUR CLIENT'S "
|
||||||
L"AND MAY NOT FULLY WORK WITH THIS SERVER!");
|
L"VERSION MAY NOT BE FULLY COMPATIBLE WITH THIS SERVER!");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user