about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-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)
 	{