mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-20 09:34:19 +00:00
Hotfix for Refresh
This commit is contained in:
parent
4c080fe137
commit
5114570794
|
@ -693,9 +693,9 @@ int net_host_lookup(const char *hostname, NETADDR *addr, int types)
|
|||
|
||||
if(priv_net_extract(hostname, host, sizeof(host), &port))
|
||||
return -1;
|
||||
/*
|
||||
|
||||
dbg_msg("host lookup", "host='%s' port=%d %d", host, port, types);
|
||||
*/
|
||||
|
||||
|
||||
mem_zero(&hints, sizeof(hints));
|
||||
|
||||
|
|
|
@ -935,15 +935,20 @@ void CClient::ProcessConnlessPacket(CNetChunk *pPacket)
|
|||
for(int i = 0; i < IMasterServer::MAX_MASTERSERVERS; i++)
|
||||
{
|
||||
if(!m_pMasterServer->IsValid(i))
|
||||
continue;
|
||||
if(net_addr_comp(&pPacket->m_Address, &m_pMasterServer->GetAddr(i)) == 0)
|
||||
continue;
|
||||
NETADDR tmp = m_pMasterServer->GetAddr(i);
|
||||
if(net_addr_comp(&pPacket->m_Address, &tmp) == 0)
|
||||
{
|
||||
ServerID = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(ServerCount > -1 && ServerID != -1)
|
||||
{
|
||||
m_pMasterServer->SetCount(ServerID, ServerCount);
|
||||
if(g_Config.m_Debug)
|
||||
dbg_msg("MasterCount", "Server %d got %d servers", ServerID, ServerCount);
|
||||
}
|
||||
}
|
||||
// server list from master server
|
||||
if(pPacket->m_DataSize >= (int)sizeof(SERVERBROWSE_LIST) &&
|
||||
|
|
|
@ -617,7 +617,7 @@ void CServerBrowser::Update(bool ForceResort)
|
|||
Addr = m_pMasterServer->GetAddr(i);
|
||||
m_pMasterServer->SetCount(i, -1);
|
||||
Packet.m_Address = Addr;
|
||||
m_pNetClient->Send(&Packet);
|
||||
m_pNetClient->Send(&Packet);
|
||||
if(g_Config.m_Debug)
|
||||
{
|
||||
dbg_msg("client_srvbrowse", "Count-Request sent to %d", i);
|
||||
|
@ -636,10 +636,14 @@ void CServerBrowser::Update(bool ForceResort)
|
|||
int Count = m_pMasterServer->GetCount(i);
|
||||
if(Count == -1)
|
||||
{
|
||||
/* ignore Server
|
||||
m_MasterServerCount = -1;
|
||||
return; // we don't have the required server information
|
||||
return;
|
||||
// we don't have the required server information
|
||||
*/
|
||||
}
|
||||
m_MasterServerCount += Count;
|
||||
else
|
||||
m_MasterServerCount += Count;
|
||||
}
|
||||
//request Server-List
|
||||
NETADDR Addr;
|
||||
|
@ -664,7 +668,31 @@ void CServerBrowser::Update(bool ForceResort)
|
|||
dbg_msg("client_srvbrowse", "ServerCount: %d, requesting server list", m_MasterServerCount);
|
||||
}
|
||||
m_LastPacketTick = 0;
|
||||
}
|
||||
}
|
||||
else if(m_MasterServerCount > -1)
|
||||
{
|
||||
m_MasterServerCount = 0;
|
||||
for(int i = 0; i < IMasterServer::MAX_MASTERSERVERS; i++)
|
||||
{
|
||||
if(!m_pMasterServer->IsValid(i))
|
||||
continue;
|
||||
int Count = m_pMasterServer->GetCount(i);
|
||||
if(Count == -1)
|
||||
{
|
||||
/* ignore Server
|
||||
m_MasterServerCount = -1;
|
||||
return;
|
||||
// we don't have the required server information
|
||||
*/
|
||||
}
|
||||
else
|
||||
m_MasterServerCount += Count;
|
||||
}
|
||||
if(g_Config.m_Debug)
|
||||
{
|
||||
dbg_msg("client_srvbrowse", "ServerCount2: %d", m_MasterServerCount);
|
||||
}
|
||||
}
|
||||
if(m_MasterServerCount > m_NumRequests + m_LastPacketTick)
|
||||
{
|
||||
++m_LastPacketTick;
|
||||
|
@ -722,8 +750,8 @@ void CServerBrowser::Update(bool ForceResort)
|
|||
pNext = pEntry->m_pNextReq;
|
||||
RemoveRequest(pEntry); //release request
|
||||
pEntry = pNext;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// check if we need to resort
|
||||
if(m_Sorthash != SortHash() || ForceResort)
|
||||
|
|
|
@ -55,7 +55,9 @@ public:
|
|||
{
|
||||
m_pEngine->HostLookup(&m_aMasterServers[i].m_Lookup, m_aMasterServers[i].m_aHostname, Nettype);
|
||||
m_aMasterServers[i].m_Valid = false;
|
||||
m_aMasterServers[i].m_Count = -1;
|
||||
m_aMasterServers[i].m_Count = 0;
|
||||
|
||||
//dbg_msg("MasterServer", "Lookup id: %d, name: %s, nettype: %d", i, m_aMasterServers[i].m_aHostname, Nettype);
|
||||
}
|
||||
|
||||
m_State = STATE_UPDATE;
|
||||
|
@ -80,9 +82,15 @@ public:
|
|||
m_aMasterServers[i].m_Addr = m_aMasterServers[i].m_Lookup.m_Addr;
|
||||
m_aMasterServers[i].m_Addr.port = 8300;
|
||||
m_aMasterServers[i].m_Valid = true;
|
||||
|
||||
//dbg_msg("MasterServer", "Set server %d, name: %s with addr-port: %d addr-ip %s addr-type %d", i, m_aMasterServers[i].m_aHostname, m_aMasterServers[i].m_Addr.port, m_aMasterServers[i].m_Addr.ip, m_aMasterServers[i].m_Addr.type);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_aMasterServers[i].m_Valid = false;
|
||||
|
||||
// dbg_msg("MasterServer", "Dropped %d, name: %s with addr-port: %d addr-ip %s addr-type %d", i, m_aMasterServers[i].m_aHostname);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue