diff options
author | Perttu Ahola <celeron55@gmail.com> | 2013-08-08 06:10:45 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2013-08-08 06:11:43 +0300 |
commit | 35c5ccfad34417e37ecb76bfb2995e47142b272e (patch) | |
tree | 9d150f3924036ec41fdea4256fe952b0b6e3236c /src | |
parent | 2ed3067bbed9844b434b53fb9cacb870e6ca97ea (diff) | |
download | minetest-35c5ccfad34417e37ecb76bfb2995e47142b272e.tar.gz minetest-35c5ccfad34417e37ecb76bfb2995e47142b272e.tar.bz2 minetest-35c5ccfad34417e37ecb76bfb2995e47142b272e.zip |
Don't freak out when a client sends multiple TOSERVER_INIT packets; also log one thing more.
Diffstat (limited to 'src')
-rw-r--r-- | src/server.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/server.cpp b/src/server.cpp index 1fea8afe5..7926b879f 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1810,7 +1810,15 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) if(datasize < 2+1+PLAYERNAME_SIZE) return; - verbosestream<<"Server: Got TOSERVER_INIT from "<<addr_s<<std::endl; + // If net_proto_version is set, this client has already been handled + if(getClient(peer_id)->net_proto_version != 0){ + verbosestream<<"Server: Ignoring multiple TOSERVER_INITs from " + <<addr_s<<" (peer_id="<<peer_id<<")"<<std::endl; + return; + } + + verbosestream<<"Server: Got TOSERVER_INIT from "<<addr_s<<" (peer_id=" + <<peer_id<<")"<<std::endl; // Do not allow multiple players in simple singleplayer mode. // This isn't a perfect way to do it, but will suffice for now. @@ -4651,6 +4659,8 @@ void Server::DenyAccess(u16 peer_id, const std::wstring &reason) // If there are way too many clients, get rid of denied new ones immediately if(m_clients.size() > 2 * g_settings->getU16("max_users")){ + verbosestream<<"Server: DenyAccess: Too many clients; getting rid of " + <<"peer_id="<<peer_id<<" immediately"<<std::endl; // Delete peer to stop sending it data m_con.DeletePeer(peer_id); // Delete client also to stop block sends and other stuff |