mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-18 22:18:19 +00:00
Extract InitNetworkClient
method
This commit is contained in:
parent
b3f384f312
commit
c9f68901b7
|
@ -3024,46 +3024,8 @@ void CClient::Run()
|
|||
#endif
|
||||
|
||||
#ifndef CONF_WEBASM
|
||||
// open socket
|
||||
{
|
||||
NETADDR BindAddr;
|
||||
if(g_Config.m_Bindaddr[0] == '\0')
|
||||
{
|
||||
mem_zero(&BindAddr, sizeof(BindAddr));
|
||||
}
|
||||
else if(net_host_lookup(g_Config.m_Bindaddr, &BindAddr, NETTYPE_ALL) != 0)
|
||||
{
|
||||
dbg_msg("client", "The configured bindaddr '%s' cannot be resolved", g_Config.m_Bindaddr);
|
||||
return;
|
||||
}
|
||||
BindAddr.type = NETTYPE_ALL;
|
||||
for(unsigned int i = 0; i < std::size(m_aNetClient); i++)
|
||||
{
|
||||
int &PortRef = i == CONN_MAIN ? g_Config.m_ClPort : i == CONN_DUMMY ? g_Config.m_ClDummyPort : g_Config.m_ClContactPort;
|
||||
if(PortRef < 1024) // Reject users setting ports that we don't want to use
|
||||
{
|
||||
PortRef = 0;
|
||||
}
|
||||
BindAddr.port = PortRef;
|
||||
unsigned RemainingAttempts = 25;
|
||||
while(BindAddr.port == 0 || !m_aNetClient[i].Open(BindAddr))
|
||||
{
|
||||
if(BindAddr.port != 0)
|
||||
{
|
||||
--RemainingAttempts;
|
||||
if(RemainingAttempts == 0)
|
||||
{
|
||||
if(g_Config.m_Bindaddr[0])
|
||||
dbg_msg("client", "Could not open network client, try changing or unsetting the bindaddr '%s'", g_Config.m_Bindaddr);
|
||||
else
|
||||
dbg_msg("client", "Could not open network client");
|
||||
return;
|
||||
}
|
||||
}
|
||||
BindAddr.port = (secure_rand() % 64511) + 1024;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!InitNetworkClient())
|
||||
return;
|
||||
#endif
|
||||
|
||||
// init font rendering
|
||||
|
@ -3421,6 +3383,48 @@ void CClient::Run()
|
|||
delete m_pEditor;
|
||||
}
|
||||
|
||||
bool CClient::InitNetworkClient()
|
||||
{
|
||||
NETADDR BindAddr;
|
||||
if(g_Config.m_Bindaddr[0] == '\0')
|
||||
{
|
||||
mem_zero(&BindAddr, sizeof(BindAddr));
|
||||
}
|
||||
else if(net_host_lookup(g_Config.m_Bindaddr, &BindAddr, NETTYPE_ALL) != 0)
|
||||
{
|
||||
dbg_msg("client", "The configured bindaddr '%s' cannot be resolved", g_Config.m_Bindaddr);
|
||||
return false;
|
||||
}
|
||||
BindAddr.type = NETTYPE_ALL;
|
||||
for(unsigned int i = 0; i < std::size(m_aNetClient); i++)
|
||||
{
|
||||
int &PortRef = i == CONN_MAIN ? g_Config.m_ClPort : i == CONN_DUMMY ? g_Config.m_ClDummyPort : g_Config.m_ClContactPort;
|
||||
if(PortRef < 1024) // Reject users setting ports that we don't want to use
|
||||
{
|
||||
PortRef = 0;
|
||||
}
|
||||
BindAddr.port = PortRef;
|
||||
unsigned RemainingAttempts = 25;
|
||||
while(BindAddr.port == 0 || !m_aNetClient[i].Open(BindAddr))
|
||||
{
|
||||
if(BindAddr.port != 0)
|
||||
{
|
||||
--RemainingAttempts;
|
||||
if(RemainingAttempts == 0)
|
||||
{
|
||||
if(g_Config.m_Bindaddr[0])
|
||||
dbg_msg("client", "Could not open network client, try changing or unsetting the bindaddr '%s'", g_Config.m_Bindaddr);
|
||||
else
|
||||
dbg_msg("client", "Could not open network client");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
BindAddr.port = (secure_rand() % 64511) + 1024;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CClient::CtrlShiftKey(int Key, bool &Last)
|
||||
{
|
||||
if(Input()->ModifierIsPressed() && Input()->ShiftIsPressed() && !Last && Input()->KeyIsPressed(Key))
|
||||
|
|
|
@ -425,6 +425,7 @@ public:
|
|||
|
||||
void Run();
|
||||
|
||||
bool InitNetworkClient();
|
||||
bool CtrlShiftKey(int Key, bool &Last);
|
||||
|
||||
static void Con_Connect(IConsole::IResult *pResult, void *pUserData);
|
||||
|
|
Loading…
Reference in a new issue