- 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) {
|
||||
//shadow texture
|
||||
if(shadows==sProjected || shadows==sShadowMapping){
|
||||
if(shadows == sProjected || shadows == sShadowMapping) {
|
||||
glActiveTexture(shadowTexUnit);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
|
||||
|
|
|
@ -389,7 +389,8 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM
|
|||
if(config.getBool("EnableFTPXfer","true") == true) {
|
||||
ClientInterface *clientInterface = networkManager.getClientInterface();
|
||||
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);
|
||||
std::pair<string,string> mapsPath;
|
||||
|
|
|
@ -550,10 +550,21 @@ void MenuStateJoinGame::connectToServer() {
|
|||
config.setString("ServerIp", serverIp.getString());
|
||||
config.save();
|
||||
|
||||
abortAutoFind = true;
|
||||
clientInterface->stopServerDiscovery();
|
||||
mainMenu->setState(new MenuStateConnectedGame(program, mainMenu));
|
||||
|
||||
for(time_t elapsedWait = time(NULL);
|
||||
clientInterface->getIntroDone() == false &&
|
||||
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__);
|
||||
}
|
||||
|
||||
|
|
|
@ -170,8 +170,9 @@ void ClientInterface::updateLobby() {
|
|||
versionString = networkMessageIntro.getVersionString();
|
||||
playerIndex= networkMessageIntro.getPlayerIndex();
|
||||
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
|
||||
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__);
|
||||
|
||||
//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);
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
|
|
@ -54,6 +54,7 @@ private:
|
|||
time_t clientSimulationLagStartTime;
|
||||
string versionString;
|
||||
int sessionKey;
|
||||
int serverFTPPort;
|
||||
|
||||
public:
|
||||
ClientInterface();
|
||||
|
@ -104,6 +105,7 @@ public:
|
|||
const string &getVersionString() const {return versionString;}
|
||||
virtual string getHumanPlayerName(int index=-1);
|
||||
virtual int getHumanPlayerIndex() const {return playerIndex;}
|
||||
int getServerFTPPort() const { return serverFTPPort; }
|
||||
|
||||
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__);
|
||||
|
||||
if(socket != NULL) {
|
||||
NetworkMessageIntro networkMessageIntro(sessionKey,getNetworkVersionString(), getHostName(), playerIndex, nmgstNoSlots, 0);
|
||||
NetworkMessageIntro networkMessageIntro(sessionKey,getNetworkVersionString(), getHostName(), playerIndex, nmgstNoSlots, 0, ServerSocket::getFTPServerPort());
|
||||
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__);
|
||||
|
||||
if(socket != NULL) {
|
||||
NetworkMessageIntro networkMessageIntro(sessionKey,getNetworkVersionString(), getHostName(), playerIndex, nmgstOk, 0);
|
||||
NetworkMessageIntro networkMessageIntro(sessionKey,getNetworkVersionString(), getHostName(), playerIndex, nmgstOk, 0, ServerSocket::getFTPServerPort());
|
||||
sendMessage(&networkMessageIntro);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,7 +120,8 @@ NetworkMessageIntro::NetworkMessageIntro() {
|
|||
NetworkMessageIntro::NetworkMessageIntro(int32 sessionId,const string &versionString,
|
||||
const string &name, int playerIndex,
|
||||
NetworkGameStateType gameState,
|
||||
uint32 externalIp) {
|
||||
uint32 externalIp,
|
||||
uint32 ftpPort) {
|
||||
data.messageType = nmtIntro;
|
||||
data.sessionId = sessionId;
|
||||
data.versionString = versionString;
|
||||
|
@ -128,9 +129,10 @@ NetworkMessageIntro::NetworkMessageIntro(int32 sessionId,const string &versionSt
|
|||
data.playerIndex = static_cast<int16>(playerIndex);
|
||||
data.gameState = static_cast<int8>(gameState);
|
||||
data.externalIp = externalIp;
|
||||
data.ftpPort = ftpPort;
|
||||
}
|
||||
|
||||
bool NetworkMessageIntro::receive(Socket* socket){
|
||||
bool NetworkMessageIntro::receive(Socket* socket) {
|
||||
bool result = NetworkMessage::receive(socket, &data, sizeof(data));
|
||||
data.name.nullTerminate();
|
||||
data.versionString.nullTerminate();
|
||||
|
@ -138,9 +140,9 @@ bool NetworkMessageIntro::receive(Socket* socket){
|
|||
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);
|
||||
assert(data.messageType==nmtIntro);
|
||||
assert(data.messageType == nmtIntro);
|
||||
NetworkMessage::send(socket, &data, sizeof(data));
|
||||
}
|
||||
|
||||
|
|
|
@ -92,6 +92,7 @@ private:
|
|||
int16 playerIndex;
|
||||
int8 gameState;
|
||||
uint32 externalIp;
|
||||
uint32 ftpPort;
|
||||
};
|
||||
|
||||
private:
|
||||
|
@ -99,7 +100,7 @@ private:
|
|||
|
||||
public:
|
||||
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;}
|
||||
string getVersionString() const { return data.versionString.getString(); }
|
||||
|
@ -107,6 +108,7 @@ public:
|
|||
int getPlayerIndex() const { return data.playerIndex; }
|
||||
NetworkGameStateType getGameState() const { return static_cast<NetworkGameStateType>(data.gameState); }
|
||||
uint32 getExternalIp() const { return data.externalIp;}
|
||||
uint32 getFtpPort() const { return data.ftpPort; }
|
||||
|
||||
virtual bool receive(Socket* socket);
|
||||
virtual void send(Socket* socket) const;
|
||||
|
|
|
@ -262,8 +262,8 @@ FTP_Client_ResultType FTPClientThread::getMapFromServer(string mapFileName, stri
|
|||
CURLcode res = curl_easy_perform(curl);
|
||||
if(CURLE_OK != res) {
|
||||
// we failed
|
||||
printf("curl FAILED with: %d [%s]\n", res,curl_easy_strerror(res));
|
||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"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] szBuf [%s]\n", res,curl_easy_strerror(res),szBuf);
|
||||
}
|
||||
else {
|
||||
result = ftp_crt_SUCCESS;
|
||||
|
@ -420,8 +420,8 @@ FTP_Client_ResultType FTPClientThread::getTilesetFromServer(string tileSetName,
|
|||
|
||||
if(CURLE_OK != res) {
|
||||
// we failed
|
||||
printf("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]\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] szBuf [%s]\n", res,curl_easy_strerror(res),destRootFolder.c_str(),szBuf);
|
||||
|
||||
if(destRootFolder != "") {
|
||||
//unlink(destRootFolder.c_str());
|
||||
|
|
Loading…
Reference in New Issue