From f2051c98223d087c8ba3d7e4514935781c93ed1c Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Sat, 30 Jul 2011 20:10:16 +0300
Subject: [PATCH] fix to the former

---
 src/server.cpp | 15 ++++++++++-----
 src/server.h   |  3 +++
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/server.cpp b/src/server.cpp
index 368f0acbf..07f9875c4 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1979,13 +1979,13 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
 		{
 			net_proto_version = readU16(&data[2+1+PLAYERNAME_SIZE+PASSWORD_SIZE]);
 		}
-		if(net_proto_version == 0)
+		getClient(peer->id)->net_proto_version = net_proto_version;
+		/*if(net_proto_version == 0)
 		{
-			/*SendAccessDenied(m_con, peer_id,
+			SendAccessDenied(m_con, peer_id,
 					L"Your client is too old (network protocol)");
-			return;*/
-			SendChatMessage(peer_id, L"# Server: NOTE: YOUR CLIENT IS OLD AND DOES NOT WORK PROPERLY WITH THIS SERVER");
-		}
+			return;
+		}*/
 
 		/*
 			Set up player
@@ -2182,6 +2182,11 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
 			BroadcastChatMessage(message);
 		}
 
+		if(getClient(peer->id)->net_proto_version == 0)
+		{
+			SendChatMessage(peer_id, L"# Server: NOTE: YOUR CLIENT IS OLD AND DOES NOT WORK PROPERLY WITH THIS SERVER");
+		}
+
 		return;
 	}
 
diff --git a/src/server.h b/src/server.h
index c300d40e6..4a2d667a8 100644
--- a/src/server.h
+++ b/src/server.h
@@ -235,6 +235,8 @@ class RemoteClient
 	u16 peer_id;
 	// The serialization version to use with the client
 	u8 serialization_version;
+	//
+	u16 net_proto_version;
 	// Version is stored in here after INIT before INIT2
 	u8 pending_serialization_version;
 
@@ -244,6 +246,7 @@ class RemoteClient
 	{
 		peer_id = 0;
 		serialization_version = SER_FMT_VER_INVALID;
+		net_proto_version = 0;
 		pending_serialization_version = SER_FMT_VER_INVALID;
 		m_nearest_unsent_d = 0;
 		m_nearest_unsent_reset_timer = 0.0;
-- 
GitLab