forked from Mirrors/openclonk
Let C4ConfigNetwork check for ports collisions instead of C4Network2
I also wanted to move the default port definitions to C4Config, but not all are user configurable, so I left them where they are for now. The code is still better with this change.stable-5.2
parent
c901530ee1
commit
7fe7e557e0
|
@ -194,6 +194,7 @@ class C4ConfigNetwork
|
|||
public:
|
||||
void CompileFunc(StdCompiler *pComp);
|
||||
const char *GetLeagueServerAddress();
|
||||
void CheckPortsForCollisions();
|
||||
};
|
||||
|
||||
class C4ConfigStartup
|
||||
|
|
|
@ -21,20 +21,13 @@
|
|||
#define INC_C4Network2
|
||||
|
||||
#include "C4NetIO.h"
|
||||
|
||||
#include "C4Application.h"
|
||||
#include "C4Network2Client.h"
|
||||
#include "C4Network2Res.h"
|
||||
#include "C4Network2IO.h"
|
||||
#include "C4Network2Players.h"
|
||||
#include "C4GameParameters.h"
|
||||
|
||||
#ifndef BIG_C4INCLUDE
|
||||
#include "C4PlayerInfo.h"
|
||||
#include "C4Teams.h"
|
||||
#include "C4Network2IO.h"
|
||||
#include "C4Network2Res.h"
|
||||
#include "C4Network2Client.h"
|
||||
#include "C4Control.h"
|
||||
#include "C4Gui.h"
|
||||
#endif
|
||||
#include "C4GameParameters.h"
|
||||
|
||||
// lobby predef - no need to include lobby in header just for the class ptr
|
||||
namespace C4GameLobby { class MainDlg; class Countdown; }
|
||||
|
|
|
@ -817,6 +817,22 @@ const char* C4ConfigNetwork::GetLeagueServerAddress()
|
|||
return "clonk.de:84/league2b/league.php";
|
||||
}
|
||||
|
||||
void C4ConfigNetwork::CheckPortsForCollisions()
|
||||
{
|
||||
// check for port collisions
|
||||
if(PortTCP != -1 && PortTCP == PortRefServer)
|
||||
{
|
||||
LogSilentF("Network: TCP Port collision, setting defaults");
|
||||
PortTCP = C4NetStdPortTCP;
|
||||
PortRefServer = C4NetStdPortRefServer;
|
||||
}
|
||||
if(PortUDP != -1 && PortUDP == PortDiscovery)
|
||||
{
|
||||
LogSilentF("Network: UDP Port collision, setting defaults");
|
||||
PortUDP = C4NetStdPortUDP;
|
||||
PortDiscovery = C4NetStdPortDiscovery;
|
||||
}
|
||||
}
|
||||
void C4ConfigControls::ResetKeys()
|
||||
{
|
||||
StdCompilerNull Comp; Comp.Compile(mkParAdapt(*this, true));
|
||||
|
|
|
@ -1010,19 +1010,7 @@ bool C4Network2::InitNetIO(bool fNoClientID, bool fHost)
|
|||
{
|
||||
// clear
|
||||
NetIO.Clear();
|
||||
// check for port collisions
|
||||
if(Config.Network.PortTCP != -1 && Config.Network.PortTCP == Config.Network.PortRefServer)
|
||||
{
|
||||
LogSilentF("Network: TCP Port collision, setting defaults");
|
||||
Config.Network.PortTCP = C4NetStdPortTCP;
|
||||
Config.Network.PortRefServer = C4NetStdPortRefServer;
|
||||
}
|
||||
if(Config.Network.PortUDP != -1 && Config.Network.PortUDP == Config.Network.PortDiscovery)
|
||||
{
|
||||
LogSilentF("Network: UDP Port collision, setting defaults");
|
||||
Config.Network.PortUDP = C4NetStdPortUDP;
|
||||
Config.Network.PortDiscovery = C4NetStdPortDiscovery;
|
||||
}
|
||||
Config.Network.CheckPortsForCollisions();
|
||||
// discovery: disable for client
|
||||
int16_t iPortDiscovery = fHost ? Config.Network.PortDiscovery : -1;
|
||||
int16_t iPortRefServer = fHost ? Config.Network.PortRefServer : -1;
|
||||
|
|
Loading…
Reference in New Issue