As a work-a-round, I commented out part of CScreenJoin::PreState_QueryDetails (near the end)
Code: Select all
bool CScreenJoin::PreState_QueryDetails()
{
TServerEntryMap::const_iterator iter = m_cServerMap.find(m_sSelectedServerAddress);
if( iter == m_cServerMap.end( ))
return false;
std::string const& sPrivateAddress = iter->first;
const ServerEntry &serverEntry = iter->second;
if (stricmp(serverEntry.m_sVersion.c_str(), g_pVersionMgr->GetNetVersion()) != 0)
{
SetDetailErrorMessage(LoadTempString(IDS_SERVER_DETAIL_VERSION));
return false;
}
// Convert the address string into ip and port.
char szIP[16];
uint32 nColon = serverEntry.m_sPublicAddress.rfind( ":", serverEntry.m_sPublicAddress.length( ) - 1);
if( nColon == std::string::npos || nColon > ARRAY_LEN( szIP ))
return false;
strncpy( szIP, serverEntry.m_sPublicAddress.c_str( ), nColon );
szIP[nColon] = 0;
if( !serverEntry.m_sPublicAddress.c_str( )[nColon+1] )
return false;
uint16 nPort = min( atoi( serverEntry.m_sPublicAddress.c_str( ) + nColon + 1 ), 65535 );
// Request the details for this server.
IGameSpyBrowser* pGameSpyBrowser = ( serverEntry.m_bDemoServer ) ?
g_pClientMultiplayerMgr->GetDemoServerBrowser( ) :
g_pClientMultiplayerMgr->GetRetailServerBrowser( );
/*
** if( !pGameSpyBrowser->RequestServerDetails( szIP, nPort, ServerInfoCallback, this ))
** {
** SetDetailErrorMessage(LoadTempString(IDS_SERVER_NORESPONSE));
** return false;
** }
*/
return true;
}
Complied with MSVC++ 7.1.3088 and .NET Framework 1.1.4322 SP1
Anyone have a clue on how to fix this? I don't