about summary refs log tree commit diff
path: root/src/engine/server
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2010-06-13 19:34:14 +0200
committeroy <Tom_Adams@web.de>2010-06-13 19:34:14 +0200
commita5bc567e84902d55fe1f2eec9df621d984a0d808 (patch)
tree306b87fd72b19605e450c1f426f95ac5969fef60 /src/engine/server
parentd7c106ca900a3b9b808878bae1b4fe2021b703e0 (diff)
downloadzcatch-a5bc567e84902d55fe1f2eec9df621d984a0d808.tar.gz
zcatch-a5bc567e84902d55fe1f2eec9df621d984a0d808.zip
fixed a server register issue
Diffstat (limited to 'src/engine/server')
-rw-r--r--src/engine/server/register.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/engine/server/register.cpp b/src/engine/server/register.cpp
index 959b9288..5e49f499 100644
--- a/src/engine/server/register.cpp
+++ b/src/engine/server/register.cpp
@@ -231,6 +231,23 @@ void CRegister::RegisterUpdate()
 
 int CRegister::RegisterProcessPacket(CNetChunk *pPacket)
 {
+	// check for masterserver address
+	bool Valid = false;
+	NETADDR Addr1 = pPacket->m_Address;
+	Addr1.port = 0;
+	for(int i = 0; i < IMasterServer::MAX_MASTERSERVERS; i++)
+	{
+		NETADDR Addr2 = m_aMasterserverInfo[i].m_Addr;
+		Addr2.port = 0;
+		if(net_addr_comp(&Addr1, &Addr2) == 0)
+		{
+			Valid = true;
+			break;
+		}
+	}
+	if(!Valid)
+		return 0;
+			
 	if(pPacket->m_DataSize == sizeof(SERVERBROWSE_FWCHECK) &&
 		mem_comp(pPacket->m_pData, SERVERBROWSE_FWCHECK, sizeof(SERVERBROWSE_FWCHECK)) == 0)
 	{