| 871 | } |
| 872 | |
| 873 | CServerBrowser::CServerEntry *CServerBrowser::ReplaceEntry(CServerEntry *pEntry, const NETADDR *pAddrs, int NumAddrs) |
| 874 | { |
| 875 | for(int i = 0; i < pEntry->m_Info.m_NumAddresses; i++) |
| 876 | { |
| 877 | m_ByAddr.erase(pEntry->m_Info.m_aAddresses[i]); |
| 878 | } |
| 879 | |
| 880 | // set the info |
| 881 | mem_copy(pEntry->m_Info.m_aAddresses, pAddrs, NumAddrs * sizeof(pAddrs[0])); |
| 882 | pEntry->m_Info.m_NumAddresses = NumAddrs; |
| 883 | |
| 884 | pEntry->m_Info.m_Latency = 999; |
| 885 | pEntry->m_Info.m_HasRank = CServerInfo::RANK_UNAVAILABLE; |
| 886 | ServerBrowserFormatAddresses(pEntry->m_Info.m_aAddress, sizeof(pEntry->m_Info.m_aAddress), pEntry->m_Info.m_aAddresses, pEntry->m_Info.m_NumAddresses); |
| 887 | UpdateServerCommunity(&pEntry->m_Info); |
| 888 | str_copy(pEntry->m_Info.m_aName, pEntry->m_Info.m_aAddress, sizeof(pEntry->m_Info.m_aName)); |
| 889 | |
| 890 | pEntry->m_Info.m_Favorite = m_pFavorites->IsFavorite(pEntry->m_Info.m_aAddresses, pEntry->m_Info.m_NumAddresses); |
| 891 | pEntry->m_Info.m_FavoriteAllowPing = m_pFavorites->IsPingAllowed(pEntry->m_Info.m_aAddresses, pEntry->m_Info.m_NumAddresses); |
| 892 | |
| 893 | for(int i = 0; i < NumAddrs; i++) |
| 894 | { |
| 895 | m_ByAddr[pAddrs[i]] = pEntry->m_Info.m_ServerIndex; |
| 896 | } |
| 897 | |
| 898 | return pEntry; |
| 899 | } |
| 900 | |
| 901 | void CServerBrowser::OnServerInfoUpdate(const NETADDR &Addr, int Token, const CServerInfo *pInfo) |
| 902 | { |
nothing calls this directly
no test coverage detected