diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/engine/client/client.cpp | 28 | ||||
| -rw-r--r-- | src/engine/client/client.h | 1 | ||||
| -rw-r--r-- | src/engine/engine.h | 3 | ||||
| -rw-r--r-- | src/engine/masterserver.h | 2 | ||||
| -rw-r--r-- | src/engine/server/register.cpp | 4 | ||||
| -rw-r--r-- | src/engine/server/register.h | 2 | ||||
| -rw-r--r-- | src/engine/server/server.cpp | 2 | ||||
| -rw-r--r-- | src/engine/shared/engine.cpp | 5 | ||||
| -rw-r--r-- | src/engine/shared/masterserver.cpp | 4 |
9 files changed, 27 insertions, 24 deletions
diff --git a/src/engine/client/client.cpp b/src/engine/client/client.cpp index e9df09c5..e3ff7b47 100644 --- a/src/engine/client/client.cpp +++ b/src/engine/client/client.cpp @@ -1788,7 +1788,7 @@ void CClient::VersionUpdate() { if(m_VersionInfo.m_State == CVersionInfo::STATE_INIT) { - Engine()->HostLookup(&m_VersionInfo.m_VersionServeraddr, g_Config.m_ClVersionServer); + Engine()->HostLookup(&m_VersionInfo.m_VersionServeraddr, g_Config.m_ClVersionServer, m_BindAddr.type); m_VersionInfo.m_State = CVersionInfo::STATE_START; } else if(m_VersionInfo.m_State == CVersionInfo::STATE_START) @@ -1851,6 +1851,18 @@ void CClient::Run() if(m_pGraphics->Init() != 0) return; + // open socket + { + NETADDR BindAddr; + mem_zero(&BindAddr, sizeof(BindAddr)); + BindAddr.type = NETTYPE_ALL; + if(!m_NetClient.Open(BindAddr, 0)) + { + dbg_msg("client", "couldn't start network"); + return; + } + } + // init font rendering Kernel()->RequestInterface<IEngineTextRender>()->Init(); @@ -1858,7 +1870,7 @@ void CClient::Run() Input()->Init(); // start refreshing addresses while we load - MasterServer()->RefreshAddresses(); + MasterServer()->RefreshAddresses(m_BindAddr.type); // init the editor m_pEditor->Init(); @@ -1875,18 +1887,6 @@ void CClient::Run() str_format(aBuf, sizeof(aBuf), "version %s", GameClient()->NetVersion()); m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "client", aBuf); - // open socket - { - NETADDR BindAddr; - mem_zero(&BindAddr, sizeof(BindAddr)); - BindAddr.type = NETTYPE_ALL; - if(!m_NetClient.Open(BindAddr, 0)) - { - dbg_msg("client", "couldn't start network"); - return; - } - } - // connect to the server if wanted /* if(config.cl_connect[0] != 0) diff --git a/src/engine/client/client.h b/src/engine/client/client.h index fa0ddaf7..ddcd1167 100644 --- a/src/engine/client/client.h +++ b/src/engine/client/client.h @@ -118,6 +118,7 @@ class CClient : public IClient, public CDemoPlayer::IListner float m_FrameTimeHigh; int m_Frames; NETADDR m_ServerAddress; + NETADDR m_BindAddr; int m_WindowMustRefocus; int m_SnapCrcErrors; bool m_AutoScreenshotRecycle; diff --git a/src/engine/engine.h b/src/engine/engine.h index c439c4ee..f4b6864c 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -11,6 +11,7 @@ class CHostLookup public: CJob m_Job; char m_aHostname[128]; + int m_Nettype; NETADDR m_Addr; }; @@ -24,7 +25,7 @@ protected: public: virtual void Init() = 0; virtual void InitLogfile() = 0; - virtual void HostLookup(CHostLookup *pLookup, const char *pHostname) = 0; + virtual void HostLookup(CHostLookup *pLookup, const char *pHostname, int Nettype) = 0; virtual void AddJob(CJob *pJob, JOBFUNC pfnFunc, void *pData) = 0; }; diff --git a/src/engine/masterserver.h b/src/engine/masterserver.h index 98a9cf0a..74a394dc 100644 --- a/src/engine/masterserver.h +++ b/src/engine/masterserver.h @@ -20,7 +20,7 @@ public: virtual int Load() = 0; virtual int Save() = 0; - virtual int RefreshAddresses() = 0; + virtual int RefreshAddresses(int Nettype) = 0; virtual void Update() = 0; virtual int IsRefreshing() = 0; virtual void DumpServers() = 0; diff --git a/src/engine/server/register.cpp b/src/engine/server/register.cpp index 5f43e292..0b53c67c 100644 --- a/src/engine/server/register.cpp +++ b/src/engine/server/register.cpp @@ -97,7 +97,7 @@ void CRegister::Init(CNetServer *pNetServer, IEngineMasterServer *pMasterServer, m_pConsole = pConsole; } -void CRegister::RegisterUpdate() +void CRegister::RegisterUpdate(int Nettype) { int64 Now = time_get(); int64 Freq = time_freq(); @@ -112,7 +112,7 @@ void CRegister::RegisterUpdate() m_RegisterCount = 0; m_RegisterFirst = 1; RegisterNewState(REGISTERSTATE_UPDATE_ADDRS); - m_pMasterServer->RefreshAddresses(); + m_pMasterServer->RefreshAddresses(Nettype); m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "register", "refreshing ip addresses"); } else if(m_RegisterState == REGISTERSTATE_UPDATE_ADDRS) diff --git a/src/engine/server/register.h b/src/engine/server/register.h index 86080177..44e6dd14 100644 --- a/src/engine/server/register.h +++ b/src/engine/server/register.h @@ -44,7 +44,7 @@ class CRegister public: CRegister(); void Init(class CNetServer *pNetServer, class IEngineMasterServer *pMasterServer, class IConsole *pConsole); - void RegisterUpdate(); + void RegisterUpdate(int Nettype); int RegisterProcessPacket(class CNetChunk *pPacket); }; diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp index cf0c879b..9395ad79 100644 --- a/src/engine/server/server.cpp +++ b/src/engine/server/server.cpp @@ -1230,7 +1230,7 @@ int CServer::Run() } // master server stuff - m_Register.RegisterUpdate(); + m_Register.RegisterUpdate(BindAddr.type); PumpNetwork(); diff --git a/src/engine/shared/engine.cpp b/src/engine/shared/engine.cpp index c7a1daad..b4b4f2a5 100644 --- a/src/engine/shared/engine.cpp +++ b/src/engine/shared/engine.cpp @@ -13,7 +13,7 @@ static int HostLookupThread(void *pUser) { CHostLookup *pLookup = (CHostLookup *)pUser; - return net_host_lookup(pLookup->m_aHostname, &pLookup->m_Addr, NETTYPE_ALL); + return net_host_lookup(pLookup->m_aHostname, &pLookup->m_Addr, pLookup->m_Nettype); } class CEngine : public IEngine @@ -98,9 +98,10 @@ public: dbg_logger_file(g_Config.m_Logfile); } - void HostLookup(CHostLookup *pLookup, const char *pHostname) + void HostLookup(CHostLookup *pLookup, const char *pHostname, int Nettype) { str_copy(pLookup->m_aHostname, pHostname, sizeof(pLookup->m_aHostname)); + pLookup->m_Nettype = Nettype; AddJob(&pLookup->m_Job, HostLookupThread, pLookup); } diff --git a/src/engine/shared/masterserver.cpp b/src/engine/shared/masterserver.cpp index 8890b327..0e8cb394 100644 --- a/src/engine/shared/masterserver.cpp +++ b/src/engine/shared/masterserver.cpp @@ -35,7 +35,7 @@ public: m_pEngine = 0; } - virtual int RefreshAddresses() + virtual int RefreshAddresses(int Nettype) { int i; @@ -47,7 +47,7 @@ public: // add lookup jobs for(i = 0; i < MAX_MASTERSERVERS; i++) { - m_pEngine->HostLookup(&m_aMasterServers[i].m_Lookup, m_aMasterServers[i].m_aHostname); + m_pEngine->HostLookup(&m_aMasterServers[i].m_Lookup, m_aMasterServers[i].m_aHostname, Nettype); m_aMasterServers[i].m_Valid = false; } |