/* EQEmu: EQEmulator Copyright (C) 2001-2026 EQEmu Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "login_server_list.h" #include "common/eq_packet_structs.h" #include "common/packet_dump.h" #include "common/servertalk.h" #include "common/version.h" #include "world/clientlist.h" #include "world/login_server.h" #include "world/world_config.h" #include "world/worlddb.h" #include "world/zonelist.h" #include "world/zoneserver.h" #include #include #include #define IGNORE_LS_FATAL_ERROR extern uint32 numzones; extern uint32 numplayers; extern volatile bool RunLoops; LoginServerList::LoginServerList() { } LoginServerList::~LoginServerList() { } void LoginServerList::Add(const char* iAddress, uint16 iPort, const char* Account, const char* Password, bool Legacy) { auto loginserver = new LoginServer(iAddress, iPort, Account, Password, Legacy); m_list.emplace_back(std::unique_ptr(loginserver)); } bool LoginServerList::SendStatus() { for (auto &iter : m_list) { (*iter).SendStatus(); } return true; } bool LoginServerList::SendPacket(ServerPacket* pack) { for (auto &iter : m_list) { (*iter).SendPacket(pack); } return true; } bool LoginServerList::SendAccountUpdate(ServerPacket* pack) { LogInfo("Requested to send ServerOP_LSAccountUpdate packet to all loginservers"); for (auto &iter : m_list) { if ((*iter).CanUpdate()) { (*iter).SendAccountUpdate(pack); } } return true; } bool LoginServerList::Connected() { for (auto &iter : m_list) { if ((*iter).Connected()) { return true; } } return false; }