- added code for server to tell clients which port to use for FTP
This commit is contained in:
parent
c6e809ec97
commit
e6f69a3839
|
@ -1706,7 +1706,7 @@ void Renderer::renderSurface(const int renderFps) {
|
||||||
|
|
||||||
if(shadowsOffDueToMinRender == false) {
|
if(shadowsOffDueToMinRender == false) {
|
||||||
//shadow texture
|
//shadow texture
|
||||||
if(shadows==sProjected || shadows==sShadowMapping){
|
if(shadows == sProjected || shadows == sShadowMapping) {
|
||||||
glActiveTexture(shadowTexUnit);
|
glActiveTexture(shadowTexUnit);
|
||||||
glEnable(GL_TEXTURE_2D);
|
glEnable(GL_TEXTURE_2D);
|
||||||
|
|
||||||
|
|
|
@ -389,7 +389,8 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM
|
||||||
if(config.getBool("EnableFTPXfer","true") == true) {
|
if(config.getBool("EnableFTPXfer","true") == true) {
|
||||||
ClientInterface *clientInterface = networkManager.getClientInterface();
|
ClientInterface *clientInterface = networkManager.getClientInterface();
|
||||||
string serverUrl = clientInterface->getServerIpAddress();
|
string serverUrl = clientInterface->getServerIpAddress();
|
||||||
int portNumber = config.getInt("FTPServerPort",intToStr(ServerSocket::getFTPServerPort()).c_str());
|
//int portNumber = config.getInt("FTPServerPort",intToStr(ServerSocket::getFTPServerPort()).c_str());
|
||||||
|
int portNumber = clientInterface->getServerFTPPort();
|
||||||
|
|
||||||
vector<string> mapPathList = config.getPathListForType(ptMaps);
|
vector<string> mapPathList = config.getPathListForType(ptMaps);
|
||||||
std::pair<string,string> mapsPath;
|
std::pair<string,string> mapsPath;
|
||||||
|
|
|
@ -550,10 +550,21 @@ void MenuStateJoinGame::connectToServer() {
|
||||||
config.setString("ServerIp", serverIp.getString());
|
config.setString("ServerIp", serverIp.getString());
|
||||||
config.save();
|
config.save();
|
||||||
|
|
||||||
abortAutoFind = true;
|
for(time_t elapsedWait = time(NULL);
|
||||||
clientInterface->stopServerDiscovery();
|
clientInterface->getIntroDone() == false &&
|
||||||
mainMenu->setState(new MenuStateConnectedGame(program, mainMenu));
|
clientInterface->isConnected() &&
|
||||||
|
difftime(time(NULL),elapsedWait) <= 3;) {
|
||||||
|
if(clientInterface->isConnected()) {
|
||||||
|
//update lobby
|
||||||
|
clientInterface->updateLobby();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( clientInterface->isConnected() == true &&
|
||||||
|
clientInterface->getIntroDone() == true) {
|
||||||
|
abortAutoFind = true;
|
||||||
|
clientInterface->stopServerDiscovery();
|
||||||
|
mainMenu->setState(new MenuStateConnectedGame(program, mainMenu));
|
||||||
|
}
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] END\n",__FILE__,__FUNCTION__);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] END\n",__FILE__,__FUNCTION__);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -170,8 +170,9 @@ void ClientInterface::updateLobby() {
|
||||||
versionString = networkMessageIntro.getVersionString();
|
versionString = networkMessageIntro.getVersionString();
|
||||||
playerIndex= networkMessageIntro.getPlayerIndex();
|
playerIndex= networkMessageIntro.getPlayerIndex();
|
||||||
serverName= networkMessageIntro.getName();
|
serverName= networkMessageIntro.getName();
|
||||||
|
serverFTPPort = networkMessageIntro.getFtpPort();
|
||||||
|
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] got NetworkMessageIntro, networkMessageIntro.getGameState() = %d, versionString [%s], sessionKey = %d, playerIndex = %d\n",__FILE__,__FUNCTION__,__LINE__,networkMessageIntro.getGameState(),versionString.c_str(),sessionKey,playerIndex);
|
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] got NetworkMessageIntro, networkMessageIntro.getGameState() = %d, versionString [%s], sessionKey = %d, playerIndex = %d, serverFTPPort = %d\n",__FILE__,__FUNCTION__,__LINE__,networkMessageIntro.getGameState(),versionString.c_str(),sessionKey,playerIndex,serverFTPPort);
|
||||||
|
|
||||||
//check consistency
|
//check consistency
|
||||||
bool compatible = checkVersionComptability(networkMessageIntro.getVersionString(), getNetworkVersionString());
|
bool compatible = checkVersionComptability(networkMessageIntro.getVersionString(), getNetworkVersionString());
|
||||||
|
@ -223,7 +224,7 @@ void ClientInterface::updateLobby() {
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
//send intro message
|
//send intro message
|
||||||
NetworkMessageIntro sendNetworkMessageIntro(sessionKey,getNetworkVersionString(), getHumanPlayerName(), -1, nmgstOk, this->getSocket()->getConnectedIPAddress());
|
NetworkMessageIntro sendNetworkMessageIntro(sessionKey,getNetworkVersionString(), getHumanPlayerName(), -1, nmgstOk, this->getSocket()->getConnectedIPAddress(),serverFTPPort);
|
||||||
sendMessage(&sendNetworkMessageIntro);
|
sendMessage(&sendNetworkMessageIntro);
|
||||||
|
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
|
@ -54,6 +54,7 @@ private:
|
||||||
time_t clientSimulationLagStartTime;
|
time_t clientSimulationLagStartTime;
|
||||||
string versionString;
|
string versionString;
|
||||||
int sessionKey;
|
int sessionKey;
|
||||||
|
int serverFTPPort;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ClientInterface();
|
ClientInterface();
|
||||||
|
@ -104,6 +105,7 @@ public:
|
||||||
const string &getVersionString() const {return versionString;}
|
const string &getVersionString() const {return versionString;}
|
||||||
virtual string getHumanPlayerName(int index=-1);
|
virtual string getHumanPlayerName(int index=-1);
|
||||||
virtual int getHumanPlayerIndex() const {return playerIndex;}
|
virtual int getHumanPlayerIndex() const {return playerIndex;}
|
||||||
|
int getServerFTPPort() const { return serverFTPPort; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|
|
@ -340,7 +340,7 @@ void ConnectionSlot::update(bool checkForNewClients,int lockedSlotIndex) {
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] !!!!!!!!WARNING - no open slots, disconnecting client\n",__FILE__,__FUNCTION__,__LINE__);
|
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] !!!!!!!!WARNING - no open slots, disconnecting client\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
if(socket != NULL) {
|
if(socket != NULL) {
|
||||||
NetworkMessageIntro networkMessageIntro(sessionKey,getNetworkVersionString(), getHostName(), playerIndex, nmgstNoSlots, 0);
|
NetworkMessageIntro networkMessageIntro(sessionKey,getNetworkVersionString(), getHostName(), playerIndex, nmgstNoSlots, 0, ServerSocket::getFTPServerPort());
|
||||||
sendMessage(&networkMessageIntro);
|
sendMessage(&networkMessageIntro);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,7 +350,7 @@ void ConnectionSlot::update(bool checkForNewClients,int lockedSlotIndex) {
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] client will be assigned to the next open slot\n",__FILE__,__FUNCTION__,__LINE__);
|
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] client will be assigned to the next open slot\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
if(socket != NULL) {
|
if(socket != NULL) {
|
||||||
NetworkMessageIntro networkMessageIntro(sessionKey,getNetworkVersionString(), getHostName(), playerIndex, nmgstOk, 0);
|
NetworkMessageIntro networkMessageIntro(sessionKey,getNetworkVersionString(), getHostName(), playerIndex, nmgstOk, 0, ServerSocket::getFTPServerPort());
|
||||||
sendMessage(&networkMessageIntro);
|
sendMessage(&networkMessageIntro);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,7 +120,8 @@ NetworkMessageIntro::NetworkMessageIntro() {
|
||||||
NetworkMessageIntro::NetworkMessageIntro(int32 sessionId,const string &versionString,
|
NetworkMessageIntro::NetworkMessageIntro(int32 sessionId,const string &versionString,
|
||||||
const string &name, int playerIndex,
|
const string &name, int playerIndex,
|
||||||
NetworkGameStateType gameState,
|
NetworkGameStateType gameState,
|
||||||
uint32 externalIp) {
|
uint32 externalIp,
|
||||||
|
uint32 ftpPort) {
|
||||||
data.messageType = nmtIntro;
|
data.messageType = nmtIntro;
|
||||||
data.sessionId = sessionId;
|
data.sessionId = sessionId;
|
||||||
data.versionString = versionString;
|
data.versionString = versionString;
|
||||||
|
@ -128,9 +129,10 @@ NetworkMessageIntro::NetworkMessageIntro(int32 sessionId,const string &versionSt
|
||||||
data.playerIndex = static_cast<int16>(playerIndex);
|
data.playerIndex = static_cast<int16>(playerIndex);
|
||||||
data.gameState = static_cast<int8>(gameState);
|
data.gameState = static_cast<int8>(gameState);
|
||||||
data.externalIp = externalIp;
|
data.externalIp = externalIp;
|
||||||
|
data.ftpPort = ftpPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NetworkMessageIntro::receive(Socket* socket){
|
bool NetworkMessageIntro::receive(Socket* socket) {
|
||||||
bool result = NetworkMessage::receive(socket, &data, sizeof(data));
|
bool result = NetworkMessage::receive(socket, &data, sizeof(data));
|
||||||
data.name.nullTerminate();
|
data.name.nullTerminate();
|
||||||
data.versionString.nullTerminate();
|
data.versionString.nullTerminate();
|
||||||
|
@ -138,9 +140,9 @@ bool NetworkMessageIntro::receive(Socket* socket){
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkMessageIntro::send(Socket* socket) const{
|
void NetworkMessageIntro::send(Socket* socket) const {
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] sending nmtIntro, data.playerIndex = %d, data.sessionId = %d\n",__FILE__,__FUNCTION__,__LINE__,data.playerIndex,data.sessionId);
|
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] sending nmtIntro, data.playerIndex = %d, data.sessionId = %d\n",__FILE__,__FUNCTION__,__LINE__,data.playerIndex,data.sessionId);
|
||||||
assert(data.messageType==nmtIntro);
|
assert(data.messageType == nmtIntro);
|
||||||
NetworkMessage::send(socket, &data, sizeof(data));
|
NetworkMessage::send(socket, &data, sizeof(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,6 +92,7 @@ private:
|
||||||
int16 playerIndex;
|
int16 playerIndex;
|
||||||
int8 gameState;
|
int8 gameState;
|
||||||
uint32 externalIp;
|
uint32 externalIp;
|
||||||
|
uint32 ftpPort;
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -99,7 +100,7 @@ private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NetworkMessageIntro();
|
NetworkMessageIntro();
|
||||||
NetworkMessageIntro(int32 sessionId, const string &versionString, const string &name, int playerIndex, NetworkGameStateType gameState, uint32 externalIp);
|
NetworkMessageIntro(int32 sessionId, const string &versionString, const string &name, int playerIndex, NetworkGameStateType gameState, uint32 externalIp, uint32 ftpPort);
|
||||||
|
|
||||||
int32 getSessionId() const { return data.sessionId;}
|
int32 getSessionId() const { return data.sessionId;}
|
||||||
string getVersionString() const { return data.versionString.getString(); }
|
string getVersionString() const { return data.versionString.getString(); }
|
||||||
|
@ -107,6 +108,7 @@ public:
|
||||||
int getPlayerIndex() const { return data.playerIndex; }
|
int getPlayerIndex() const { return data.playerIndex; }
|
||||||
NetworkGameStateType getGameState() const { return static_cast<NetworkGameStateType>(data.gameState); }
|
NetworkGameStateType getGameState() const { return static_cast<NetworkGameStateType>(data.gameState); }
|
||||||
uint32 getExternalIp() const { return data.externalIp;}
|
uint32 getExternalIp() const { return data.externalIp;}
|
||||||
|
uint32 getFtpPort() const { return data.ftpPort; }
|
||||||
|
|
||||||
virtual bool receive(Socket* socket);
|
virtual bool receive(Socket* socket);
|
||||||
virtual void send(Socket* socket) const;
|
virtual void send(Socket* socket) const;
|
||||||
|
|
|
@ -262,8 +262,8 @@ FTP_Client_ResultType FTPClientThread::getMapFromServer(string mapFileName, stri
|
||||||
CURLcode res = curl_easy_perform(curl);
|
CURLcode res = curl_easy_perform(curl);
|
||||||
if(CURLE_OK != res) {
|
if(CURLE_OK != res) {
|
||||||
// we failed
|
// we failed
|
||||||
printf("curl FAILED with: %d [%s]\n", res,curl_easy_strerror(res));
|
printf("curl FAILED with: %d [%s] szBuf [%s]\n", res,curl_easy_strerror(res),szBuf);
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"curl FAILED with: %d [%s]\n", res,curl_easy_strerror(res));
|
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"curl FAILED with: %d [%s] szBuf [%s]\n", res,curl_easy_strerror(res),szBuf);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result = ftp_crt_SUCCESS;
|
result = ftp_crt_SUCCESS;
|
||||||
|
@ -420,8 +420,8 @@ FTP_Client_ResultType FTPClientThread::getTilesetFromServer(string tileSetName,
|
||||||
|
|
||||||
if(CURLE_OK != res) {
|
if(CURLE_OK != res) {
|
||||||
// we failed
|
// we failed
|
||||||
printf("curl FAILED with: %d [%s] attempting to remove folder contents [%s]\n", res,curl_easy_strerror(res),destRootFolder.c_str());
|
printf("curl FAILED with: %d [%s] attempting to remove folder contents [%s] szBuf [%s]\n", res,curl_easy_strerror(res),destRootFolder.c_str(),szBuf);
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"curl FAILED with: %d [%s] attempting to remove folder contents [%s]\n", res,curl_easy_strerror(res),destRootFolder.c_str());
|
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"curl FAILED with: %d [%s] attempting to remove folder contents [%s] szBuf [%s]\n", res,curl_easy_strerror(res),destRootFolder.c_str(),szBuf);
|
||||||
|
|
||||||
if(destRootFolder != "") {
|
if(destRootFolder != "") {
|
||||||
//unlink(destRootFolder.c_str());
|
//unlink(destRootFolder.c_str());
|
||||||
|
|
Loading…
Reference in New Issue
Block a user