diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/bnetserver/Server/SessionManager.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSocket.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSocketMgr.cpp | 44 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSocketMgr.h | 9 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/World/World.h | 1 | ||||
| -rw-r--r-- | src/server/worldserver/Main.cpp | 3 | ||||
| -rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 7 | 
9 files changed, 13 insertions, 72 deletions
diff --git a/src/server/bnetserver/Server/SessionManager.cpp b/src/server/bnetserver/Server/SessionManager.cpp index 6e07fcecff1..cb56972a9c2 100644 --- a/src/server/bnetserver/Server/SessionManager.cpp +++ b/src/server/bnetserver/Server/SessionManager.cpp @@ -35,7 +35,7 @@ NetworkThread<Battlenet::Session>* Battlenet::SessionManager::CreateThreads() co  void Battlenet::SessionManager::OnSocketAccept(boost::asio::ip::tcp::socket&& sock, uint32 threadIndex)  { -    sSessionMgr.OnSocketOpen(std::forward<boost::asio::ip::tcp::socket>(sock), threadIndex); +    sSessionMgr.OnSocketOpen(std::move(sock), threadIndex);  }  Battlenet::SessionManager& Battlenet::SessionManager::Instance() diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index a1f5fb23d42..01591b0b3c8 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -810,7 +810,7 @@ void WorldSession::SendConnectToInstance(WorldPackets::Auth::ConnectToSerial ser      WorldPackets::Auth::ConnectTo connectTo;      connectTo.Key = _instanceConnectKey.Raw;      connectTo.Serial = serial; -    connectTo.Payload.Port = sWorld->getIntConfig(CONFIG_PORT_INSTANCE); +    connectTo.Payload.Port = sWorld->getIntConfig(CONFIG_PORT_WORLD);      if (instanceAddress.is_v4())      {          memcpy(connectTo.Payload.Where.Address.V4.data(), instanceAddress.to_v4().to_bytes().data(), 4); diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 04b6e30cdd1..4b2ad6c3c5c 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -63,13 +63,9 @@ std::array<uint8, 32> const WorldSocket::EncryptionKeySeed = { 0x71, 0xC9, 0xED,      0x5D, 0xA1, 0x48, 0xC8, 0x30, 0x47, 0x4A, 0xDE, 0xF6, 0x0D, 0x6C, 0xBE, 0x6F, 0xE4, 0x55, 0x73 };  WorldSocket::WorldSocket(boost::asio::ip::tcp::socket&& socket) : Socket(std::move(socket)), -    _type(CONNECTION_TYPE_REALM), _key(0), _OverSpeedPings(0), -    _worldSession(nullptr), _authed(false), _canRequestHotfixes(true), _sendBufferSize(4096), _compressionStream(nullptr) +    _type(CONNECTION_TYPE_REALM), _key(0), _serverChallenge(), _sessionKey(), _encryptKey(), _OverSpeedPings(0), +    _worldSession(nullptr), _authed(false), _canRequestHotfixes(true), _headerBuffer(sizeof(IncomingPacketHeader)), _sendBufferSize(4096), _compressionStream(nullptr)  { -    Trinity::Crypto::GetRandomBytes(_serverChallenge); -    _sessionKey.fill(0); -    _encryptKey.fill(0); -    _headerBuffer.Resize(sizeof(IncomingPacketHeader));  }  WorldSocket::~WorldSocket() @@ -246,6 +242,8 @@ bool WorldSocket::Update()  void WorldSocket::HandleSendAuthSession()  { +    Trinity::Crypto::GetRandomBytes(_serverChallenge); +      WorldPackets::Auth::AuthChallenge challenge;      challenge.Challenge = _serverChallenge;      memcpy(challenge.DosChallenge.data(), Trinity::Crypto::GetRandomBytes<32>().data(), 32); diff --git a/src/server/game/Server/WorldSocketMgr.cpp b/src/server/game/Server/WorldSocketMgr.cpp index e53bcb698a0..58f242b52f8 100644 --- a/src/server/game/Server/WorldSocketMgr.cpp +++ b/src/server/game/Server/WorldSocketMgr.cpp @@ -24,7 +24,7 @@  static void OnSocketAccept(boost::asio::ip::tcp::socket&& sock, uint32 threadIndex)  { -    sWorldSocketMgr.OnSocketOpen(std::forward<boost::asio::ip::tcp::socket>(sock), threadIndex); +    sWorldSocketMgr.OnSocketOpen(std::move(sock), threadIndex);  }  class WorldSocketThread : public NetworkThread<WorldSocket> @@ -42,14 +42,11 @@ public:      }  }; -WorldSocketMgr::WorldSocketMgr() : BaseSocketMgr(), _instanceAcceptor(nullptr), _socketSystemSendBufferSize(-1), _socketApplicationSendBufferSize(65536), _tcpNoDelay(true) +WorldSocketMgr::WorldSocketMgr() : BaseSocketMgr(), _socketSystemSendBufferSize(-1), _socketApplicationSendBufferSize(65536), _tcpNoDelay(true)  {  } -WorldSocketMgr::~WorldSocketMgr() -{ -    ASSERT(!_instanceAcceptor, "StopNetwork must be called prior to WorldSocketMgr destruction"); -} +WorldSocketMgr::~WorldSocketMgr() = default;  WorldSocketMgr& WorldSocketMgr::Instance()  { @@ -57,7 +54,7 @@ WorldSocketMgr& WorldSocketMgr::Instance()      return instance;  } -bool WorldSocketMgr::StartWorldNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, uint16 instancePort, int threadCount) +bool WorldSocketMgr::StartNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, int threadCount)  {      _tcpNoDelay = sConfigMgr->GetBoolDefault("Network.TcpNodelay", true); @@ -78,30 +75,7 @@ bool WorldSocketMgr::StartWorldNetwork(Trinity::Asio::IoContext& ioContext, std:      if (!BaseSocketMgr::StartNetwork(ioContext, bindIp, port, threadCount))          return false; -    AsyncAcceptor* instanceAcceptor = nullptr; -    try -    { -        instanceAcceptor = new AsyncAcceptor(ioContext, bindIp, instancePort); -    } -    catch (boost::system::system_error const& err) -    { -        TC_LOG_ERROR("network", "Exception caught in WorldSocketMgr::StartNetwork ({}:{}): {}", bindIp, port, err.what()); -        return false; -    } - -    if (!instanceAcceptor->Bind()) -    { -        TC_LOG_ERROR("network", "StartNetwork failed to bind instance socket acceptor"); -        delete instanceAcceptor; -        return false; -    } - -    _instanceAcceptor = instanceAcceptor; - -    _instanceAcceptor->SetSocketFactory([this]() { return GetSocketForAccept(); }); -      _acceptor->AsyncAcceptWithCallback<&OnSocketAccept>(); -    _instanceAcceptor->AsyncAcceptWithCallback<&OnSocketAccept>();      sScriptMgr->OnNetworkStart();      return true; @@ -109,14 +83,8 @@ bool WorldSocketMgr::StartWorldNetwork(Trinity::Asio::IoContext& ioContext, std:  void WorldSocketMgr::StopNetwork()  { -    if (_instanceAcceptor) -        _instanceAcceptor->Close(); -      BaseSocketMgr::StopNetwork(); -    delete _instanceAcceptor; -    _instanceAcceptor = nullptr; -      sScriptMgr->OnNetworkStop();  } @@ -146,9 +114,7 @@ void WorldSocketMgr::OnSocketOpen(boost::asio::ip::tcp::socket&& sock, uint32 th          }      } -    //sock->m_OutBufferSize = static_cast<size_t> (m_SockOutUBuff); - -    BaseSocketMgr::OnSocketOpen(std::forward<boost::asio::ip::tcp::socket>(sock), threadIndex); +    BaseSocketMgr::OnSocketOpen(std::move(sock), threadIndex);  }  NetworkThread<WorldSocket>* WorldSocketMgr::CreateThreads() const diff --git a/src/server/game/Server/WorldSocketMgr.h b/src/server/game/Server/WorldSocketMgr.h index 7049a6fff46..84b190575a4 100644 --- a/src/server/game/Server/WorldSocketMgr.h +++ b/src/server/game/Server/WorldSocketMgr.h @@ -39,7 +39,7 @@ public:      static WorldSocketMgr& Instance();      /// Start network, listen at address:port . -    bool StartWorldNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, uint16 instancePort, int networkThreads); +    bool StartNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, int threadCount) override;      /// Stops all network threads, It will wait for all running threads .      void StopNetwork() override; @@ -54,13 +54,6 @@ protected:      NetworkThread<WorldSocket>* CreateThreads() const override;  private: -    // private, must not be called directly -    bool StartNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, int threadCount) override -    { -        return BaseSocketMgr::StartNetwork(ioContext, bindIp, port, threadCount); -    } - -    AsyncAcceptor* _instanceAcceptor;      int32 _socketSystemSendBufferSize;      int32 _socketApplicationSendBufferSize;      bool _tcpNoDelay; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index dd88e890df5..8206ddae750 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -842,16 +842,9 @@ void World::LoadConfigSettings(bool reload)          uint32 val = sConfigMgr->GetIntDefault("WorldServerPort", 8085);          if (val != m_int_configs[CONFIG_PORT_WORLD])              TC_LOG_ERROR("server.loading", "WorldServerPort option can't be changed at worldserver.conf reload, using current value ({}).", m_int_configs[CONFIG_PORT_WORLD]); - -        val = sConfigMgr->GetIntDefault("InstanceServerPort", 8086); -        if (val != m_int_configs[CONFIG_PORT_INSTANCE]) -            TC_LOG_ERROR("server.loading", "InstanceServerPort option can't be changed at worldserver.conf reload, using current value ({}).", m_int_configs[CONFIG_PORT_INSTANCE]);      }      else -    {          m_int_configs[CONFIG_PORT_WORLD] = sConfigMgr->GetIntDefault("WorldServerPort", 8085); -        m_int_configs[CONFIG_PORT_INSTANCE] = sConfigMgr->GetIntDefault("InstanceServerPort", 8086); -    }      // Config values are in "milliseconds" but we handle SocketTimeOut only as "seconds" so divide by 1000      m_int_configs[CONFIG_SOCKET_TIMEOUTTIME] = sConfigMgr->GetIntDefault("SocketTimeOutTime", 900000) / 1000; diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index b96579b9d09..cb9454e0bfd 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -237,7 +237,6 @@ enum WorldIntConfigs      CONFIG_INTERVAL_CHANGEWEATHER,      CONFIG_INTERVAL_DISCONNECT_TOLERANCE,      CONFIG_PORT_WORLD, -    CONFIG_PORT_INSTANCE,      CONFIG_SOCKET_TIMEOUTTIME,      CONFIG_SESSION_ADD_DELAY,      CONFIG_GAME_TYPE, diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index 1fe898e6c1b..a482d109890 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -388,7 +388,6 @@ int main(int argc, char** argv)      // Launch the worldserver listener socket      uint16 worldPort = uint16(sWorld->getIntConfig(CONFIG_PORT_WORLD)); -    uint16 instancePort = uint16(sWorld->getIntConfig(CONFIG_PORT_INSTANCE));      std::string worldListener = sConfigMgr->GetStringDefault("BindIP", "0.0.0.0");      int networkThreads = sConfigMgr->GetIntDefault("Network.Threads", 1); @@ -400,7 +399,7 @@ int main(int argc, char** argv)          return 1;      } -    if (!sWorldSocketMgr.StartWorldNetwork(*ioContext, worldListener, worldPort, instancePort, networkThreads)) +    if (!sWorldSocketMgr.StartNetwork(*ioContext, worldListener, worldPort, networkThreads))      {          TC_LOG_ERROR("server.worldserver", "Failed to initialize network");          World::StopNow(ERROR_EXIT_CODE); diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index d9b5aed1c80..a4f983df6a9 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -167,13 +167,6 @@ MaxPingTime = 30  WorldServerPort = 8085  # -#    InstanceServerPort -#        Description: TCP port to for second world connection. -#        Default:     8086 - -InstanceServerPort = 8086 - -#  #    BindIP  #        Description: Bind world server to IP/hostname.  #                     Using IPv6 address (such as "::") will enable both IPv4 and IPv6 connections  | 
