mirror of
https://github.com/glest/glest-source.git
synced 2025-09-03 04:52:34 +02:00
- added initial ability for servers to publish an external port for use with internet games. This is in case we must use soft-haus.com which will work with only a few outgoing port numbers.
*NOTE: This update add's a new field to the PHP / mysql scripts.
This commit is contained in:
@@ -897,16 +897,16 @@ void MenuStateCustomGame::update() {
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
//SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] C - ctNetwork\n",__FILE__,__FUNCTION__);
|
//SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] C - ctNetwork\n",__FILE__,__FUNCTION__);
|
||||||
string port=intToStr(config.getInt("ServerPort"));
|
string port = intToStr(config.getInt("ServerPort"));
|
||||||
if(port!="61357"){
|
if(port != intToStr(GameConstants::serverPort)){
|
||||||
port = port + " " + lang.get("NonStandardPort")+"!)";
|
port = port + " " + lang.get("NonStandardPort") + "!)";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
port=port+")";
|
port = port + ")";
|
||||||
}
|
}
|
||||||
port="("+port;
|
port = "(" + port;
|
||||||
labelNetStatus[i].setText("--- "+port);
|
labelNetStatus[i].setText("--- " + port);
|
||||||
}
|
}
|
||||||
|
|
||||||
//SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] END - ctNetwork\n",__FILE__,__FUNCTION__);
|
//SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] END - ctNetwork\n",__FILE__,__FUNCTION__);
|
||||||
@@ -1054,6 +1054,8 @@ void MenuStateCustomGame::publishToMasterserver()
|
|||||||
publishToServerInfo["activeSlots"] = intToStr(slotCountUsed);
|
publishToServerInfo["activeSlots"] = intToStr(slotCountUsed);
|
||||||
publishToServerInfo["networkSlots"] = intToStr(slotCountHumans);
|
publishToServerInfo["networkSlots"] = intToStr(slotCountHumans);
|
||||||
publishToServerInfo["connectedClients"] = intToStr(slotCountConnectedPlayers);
|
publishToServerInfo["connectedClients"] = intToStr(slotCountConnectedPlayers);
|
||||||
|
string externalport = intToStr(Config::getInstance().getInt("ExternalServerPort",intToStr(Config::getInstance().getInt("ServerPort")).c_str()));
|
||||||
|
publishToServerInfo["externalconnectport"] = externalport;
|
||||||
|
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
}
|
}
|
||||||
|
@@ -83,6 +83,10 @@ ServerLine::ServerLine( MasterServerInfo *mServerInfo, int lineIndex)
|
|||||||
activeSlotsLabel.init(i,startOffset-lineOffset);
|
activeSlotsLabel.init(i,startOffset-lineOffset);
|
||||||
activeSlotsLabel.setText(intToStr(masterServerInfo->getActiveSlots())+"/"+intToStr(masterServerInfo->getNetworkSlots())+"/"+intToStr(masterServerInfo->getConnectedClients()));
|
activeSlotsLabel.setText(intToStr(masterServerInfo->getActiveSlots())+"/"+intToStr(masterServerInfo->getNetworkSlots())+"/"+intToStr(masterServerInfo->getConnectedClients()));
|
||||||
|
|
||||||
|
i+=50;
|
||||||
|
externalConnectPort.init(i,startOffset-lineOffset);
|
||||||
|
externalConnectPort.setText(intToStr(masterServerInfo->getExternalConnectPort()));
|
||||||
|
|
||||||
i+=50;
|
i+=50;
|
||||||
selectButton.init(i, startOffset-lineOffset, 30);
|
selectButton.init(i, startOffset-lineOffset, 30);
|
||||||
selectButton.setText(">");
|
selectButton.setText(">");
|
||||||
@@ -122,7 +126,8 @@ void ServerLine::render(){
|
|||||||
renderer.renderLabel(&techLabel);
|
renderer.renderLabel(&techLabel);
|
||||||
renderer.renderLabel(&mapLabel);
|
renderer.renderLabel(&mapLabel);
|
||||||
renderer.renderLabel(&tilesetLabel);
|
renderer.renderLabel(&tilesetLabel);
|
||||||
renderer.renderLabel(&activeSlotsLabel);
|
renderer.renderLabel(&activeSlotsLabel);
|
||||||
|
renderer.renderLabel(&externalConnectPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
// =====================================================
|
// =====================================================
|
||||||
@@ -298,7 +303,8 @@ void MenuStateMasterserver::mouseClick(int x, int y, MouseButton mouseButton){
|
|||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
soundRenderer.playFx(coreData.getClickSoundB());
|
soundRenderer.playFx(coreData.getClickSoundB());
|
||||||
string connectServerIP = serverLines[i]->getMasterServerInfo()->getIpAddress();
|
string connectServerIP = serverLines[i]->getMasterServerInfo()->getIpAddress();
|
||||||
connectToServer(connectServerIP);
|
int connectServerPort = serverLines[i]->getMasterServerInfo()->getExternalConnectPort();
|
||||||
|
connectToServer(connectServerIP,connectServerPort);
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
safeMutex.ReleaseLock();
|
safeMutex.ReleaseLock();
|
||||||
|
|
||||||
@@ -418,7 +424,7 @@ void MenuStateMasterserver::updateServerInfo() {
|
|||||||
std::vector<std::string> serverEntities;
|
std::vector<std::string> serverEntities;
|
||||||
Tokenize(server,serverEntities,"|");
|
Tokenize(server,serverEntities,"|");
|
||||||
|
|
||||||
const int MIN_FIELDS_EXPECTED = 11;
|
const int MIN_FIELDS_EXPECTED = 12;
|
||||||
if(serverEntities.size() >= MIN_FIELDS_EXPECTED) {
|
if(serverEntities.size() >= MIN_FIELDS_EXPECTED) {
|
||||||
|
|
||||||
Lang &lang= Lang::getInstance();
|
Lang &lang= Lang::getInstance();
|
||||||
@@ -446,6 +452,7 @@ void MenuStateMasterserver::updateServerInfo() {
|
|||||||
masterServerInfo->setActiveSlots(strToInt(serverEntities[8]));
|
masterServerInfo->setActiveSlots(strToInt(serverEntities[8]));
|
||||||
masterServerInfo->setNetworkSlots(strToInt(serverEntities[9]));
|
masterServerInfo->setNetworkSlots(strToInt(serverEntities[9]));
|
||||||
masterServerInfo->setConnectedClients(strToInt(serverEntities[10]));
|
masterServerInfo->setConnectedClients(strToInt(serverEntities[10]));
|
||||||
|
masterServerInfo->setExternalConnectPort(strToInt(serverEntities[11]));
|
||||||
|
|
||||||
//printf("Getting Ping time for host %s\n",masterServerInfo->getIpAddress().c_str());
|
//printf("Getting Ping time for host %s\n",masterServerInfo->getIpAddress().c_str());
|
||||||
//float pingTime = Socket::getAveragePingMS(masterServerInfo->getIpAddress().c_str(),1);
|
//float pingTime = Socket::getAveragePingMS(masterServerInfo->getIpAddress().c_str(),1);
|
||||||
@@ -490,7 +497,7 @@ void MenuStateMasterserver::updateServerInfo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool MenuStateMasterserver::connectToServer(string ipString)
|
bool MenuStateMasterserver::connectToServer(string ipString, int port)
|
||||||
{
|
{
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] START ipString='%s'\n",__FILE__,__FUNCTION__,ipString.c_str());
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] START ipString='%s'\n",__FILE__,__FUNCTION__,ipString.c_str());
|
||||||
|
|
||||||
@@ -498,11 +505,11 @@ bool MenuStateMasterserver::connectToServer(string ipString)
|
|||||||
Config& config= Config::getInstance();
|
Config& config= Config::getInstance();
|
||||||
Ip serverIp(ipString);
|
Ip serverIp(ipString);
|
||||||
|
|
||||||
int serverPort = Config::getInstance().getInt("ServerPort",intToStr(GameConstants::serverPort).c_str());
|
//int serverPort = Config::getInstance().getInt("ServerPort",intToStr(GameConstants::serverPort).c_str());
|
||||||
|
int serverPort = port;
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] try to connect to [%s] serverPort = %d\n",__FILE__,__FUNCTION__,serverIp.getString().c_str(),serverPort);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] try to connect to [%s] serverPort = %d\n",__FILE__,__FUNCTION__,serverIp.getString().c_str(),serverPort);
|
||||||
clientInterface->connect(serverIp, serverPort);
|
clientInterface->connect(serverIp, serverPort);
|
||||||
if(!clientInterface->isConnected())
|
if(clientInterface->isConnected() == false) {
|
||||||
{
|
|
||||||
NetworkManager::getInstance().end();
|
NetworkManager::getInstance().end();
|
||||||
NetworkManager::getInstance().init(nrClient);
|
NetworkManager::getInstance().init(nrClient);
|
||||||
|
|
||||||
@@ -513,8 +520,7 @@ bool MenuStateMasterserver::connectToServer(string ipString)
|
|||||||
|
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] connection failed\n",__FILE__,__FUNCTION__);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] connection failed\n",__FILE__,__FUNCTION__);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] connected to [%s]\n",__FILE__,__FUNCTION__,serverIp.getString().c_str());
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] connected to [%s]\n",__FILE__,__FUNCTION__,serverIp.getString().c_str());
|
||||||
|
|
||||||
//save server ip
|
//save server ip
|
||||||
@@ -522,7 +528,6 @@ bool MenuStateMasterserver::connectToServer(string ipString)
|
|||||||
//config.save();
|
//config.save();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -46,6 +46,8 @@ private:
|
|||||||
GraphicLabel tilesetLabel;
|
GraphicLabel tilesetLabel;
|
||||||
GraphicLabel activeSlotsLabel;
|
GraphicLabel activeSlotsLabel;
|
||||||
|
|
||||||
|
GraphicLabel externalConnectPort;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ServerLine( MasterServerInfo *mServerInfo, int lineIndex);
|
ServerLine( MasterServerInfo *mServerInfo, int lineIndex);
|
||||||
virtual ~ServerLine();
|
virtual ~ServerLine();
|
||||||
@@ -105,7 +107,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void showMessageBox(const string &text, const string &header, bool toggle);
|
void showMessageBox(const string &text, const string &header, bool toggle);
|
||||||
bool connectToServer(string ipString);
|
bool connectToServer(string ipString, int port);
|
||||||
void clearServerLines();
|
void clearServerLines();
|
||||||
void updateServerInfo();
|
void updateServerInfo();
|
||||||
|
|
||||||
|
@@ -41,6 +41,7 @@ protected:
|
|||||||
int activeSlots;
|
int activeSlots;
|
||||||
int networkSlots;
|
int networkSlots;
|
||||||
int connectedClients;
|
int connectedClients;
|
||||||
|
int externalconnectport;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const string &getGlestVersion() const {return glestVersion;}
|
const string &getGlestVersion() const {return glestVersion;}
|
||||||
@@ -56,6 +57,7 @@ public:
|
|||||||
const int getActiveSlots() const {return activeSlots;}
|
const int getActiveSlots() const {return activeSlots;}
|
||||||
const int getNetworkSlots() const {return networkSlots;}
|
const int getNetworkSlots() const {return networkSlots;}
|
||||||
const int getConnectedClients() const {return connectedClients;}
|
const int getConnectedClients() const {return connectedClients;}
|
||||||
|
const int getExternalConnectPort() const {return externalconnectport;}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -76,6 +78,7 @@ public:
|
|||||||
void setActiveSlots(int value) { activeSlots = value; }
|
void setActiveSlots(int value) { activeSlots = value; }
|
||||||
void setNetworkSlots(int value) { networkSlots = value; }
|
void setNetworkSlots(int value) { networkSlots = value; }
|
||||||
void setConnectedClients(int value) { connectedClients = value; }
|
void setConnectedClients(int value) { connectedClients = value; }
|
||||||
|
void setExternalConnectPort(int value) { externalconnectport = value; }
|
||||||
};
|
};
|
||||||
|
|
||||||
}}//end namespace
|
}}//end namespace
|
||||||
|
Reference in New Issue
Block a user