86 TC_LOG_DEBUG(
"server.authserver",
"Updating Realm List...");
91 std::map<RealmHandle, std::string> existingRealms;
93 existingRealms[p.first] = p.second.Name;
104 Field* fields = result->Fetch();
106 std::string name = fields[1].
GetString();
107 std::string externalAddressString = fields[2].
GetString();
108 std::string localAddressString = fields[3].
GetString();
109 std::string localSubmaskString = fields[4].
GetString();
112 if (!externalAddress)
114 TC_LOG_ERROR(
"server.authserver",
"Could not resolve address {} for realm \"{}\" id {}", externalAddressString, name, realmId);
121 TC_LOG_ERROR(
"server.authserver",
"Could not resolve localAddress {} for realm \"{}\" id {}", localAddressString, name, realmId);
128 TC_LOG_ERROR(
"server.authserver",
"Could not resolve localSubnetMask {} for realm \"{}\" id {}", localSubmaskString, name, realmId);
146 UpdateRealm(
id, build, name, externalAddress->address(), localAddress->address(), localSubmask->address(), port, icon, flag,
149 if (!existingRealms.count(
id))
150 TC_LOG_INFO(
"server.authserver",
"Added realm \"{}\" at {}:{}.", name, externalAddressString, port);
152 TC_LOG_DEBUG(
"server.authserver",
"Updating realm \"{}\" at {}:{}.", name, externalAddressString, port);
154 existingRealms.erase(
id);
156 catch (std::exception& ex)
158 TC_LOG_ERROR(
"server.authserver",
"Realmlist::UpdateRealms has thrown an exception: {}", ex.what());
162 while (result->NextRow());
165 for (
auto itr = existingRealms.begin(); itr != existingRealms.end(); ++itr)
166 TC_LOG_INFO(
"server.authserver",
"Removed realm \"{}\".", itr->second);
void UpdateRealm(RealmHandle const &id, uint32 build, std::string const &name, boost::asio::ip::address &&address, boost::asio::ip::address &&localAddr, boost::asio::ip::address &&localSubmask, uint16 port, uint8 icon, RealmFlags flag, uint8 timezone, AccountTypes allowedSecurityLevel, float population)