From b898017da9f7861572459a151c5b9b7d4d4eeea9 Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Fri, 6 Jul 2012 14:41:23 +0000 Subject: [PATCH] - bugfix for server network listening to port and allow forcing ip address to bind to: ServerAdminBindAddress=127.0.0.1 is hard coded as the default --- source/glest_game/network/server_interface.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/glest_game/network/server_interface.cpp b/source/glest_game/network/server_interface.cpp index 59984be3..85013cea 100644 --- a/source/glest_game/network/server_interface.cpp +++ b/source/glest_game/network/server_interface.cpp @@ -79,8 +79,9 @@ ServerInterface::ServerInterface(bool publishEnabled) :GameNetworkInterface() { serverSocketAdmin = new ServerSocket(true); serverSocketAdmin->setBlock(false); serverSocketAdmin->setBindPort(Config::getInstance().getInt("ServerAdminPort", intToStr(GameConstants::serverAdminPort).c_str())); - serverSocketAdmin->setBindSpecificAddress("127.0.0.1"); - serverSocketAdmin->listen(5); + //serverSocketAdmin->setBindSpecificAddress("127.0.0.1"); + serverSocketAdmin->setBindSpecificAddress(Config::getInstance().getString("ServerAdminBindAddress", "127.0.0.1")); + //serverSocketAdmin->listen(5); maxFrameCountLagAllowed = Config::getInstance().getInt("MaxFrameCountLagAllowed", intToStr(maxFrameCountLagAllowed).c_str()); maxFrameCountLagAllowedEver = Config::getInstance().getInt("MaxFrameCountLagAllowedEver", intToStr(maxFrameCountLagAllowedEver).c_str()); @@ -372,6 +373,9 @@ void ServerInterface::addSlot(int playerIndex) { if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); assert(playerIndex >= 0 && playerIndex < GameConstants::maxPlayers); MutexSafeWrapper safeMutex(serverSynchAccessor,CODE_AT_LINE); + if(serverSocketAdmin->isSocketValid() == false) { + serverSocketAdmin->listen(5); + } if(serverSocket.isPortBound() == false) { if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); serverSocket.bind(serverSocket.getBindPort());