aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDDuarte <dnpd.dd@gmail.com>2014-08-05 15:14:14 +0100
committerDDuarte <dnpd.dd@gmail.com>2014-08-05 15:14:52 +0100
commit66a8d41f59f24fe4cdc0bb7aa80faa2262e18972 (patch)
tree2c5eea01601297f868d2251997ab989bd672c459
parent6f52115e61fcf62420710a7c919ca3197e33376e (diff)
Auth/Networking: Use non-throw resolves in realmlist updates
Fixes #12737
-rw-r--r--src/server/authserver/Realms/RealmList.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/server/authserver/Realms/RealmList.cpp b/src/server/authserver/Realms/RealmList.cpp
index c8369273331..8f11d3882ce 100644
--- a/src/server/authserver/Realms/RealmList.cpp
+++ b/src/server/authserver/Realms/RealmList.cpp
@@ -97,8 +97,10 @@ void RealmList::UpdateRealms(bool init)
uint32 realmId = fields[0].GetUInt32();
std::string name = fields[1].GetString();
boost::asio::ip::tcp::resolver::query externalAddressQuery(ip::tcp::v4(), fields[2].GetString(), "");
- boost::asio::ip::tcp::resolver::iterator endPoint = _resolver->resolve(externalAddressQuery);
- if (endPoint == end)
+
+ boost::system::error_code ec;
+ boost::asio::ip::tcp::resolver::iterator endPoint = _resolver->resolve(externalAddressQuery, ec);
+ if (endPoint == end || ec)
{
TC_LOG_ERROR("server.authserver", "Could not resolve address %s", fields[2].GetString().c_str());
return;
@@ -107,8 +109,8 @@ void RealmList::UpdateRealms(bool init)
ip::address externalAddress = (*endPoint).endpoint().address();
boost::asio::ip::tcp::resolver::query localAddressQuery(ip::tcp::v4(), fields[3].GetString(), "");
- endPoint = _resolver->resolve(localAddressQuery);
- if (endPoint == end)
+ endPoint = _resolver->resolve(localAddressQuery, ec);
+ if (endPoint == end || ec)
{
TC_LOG_ERROR("server.authserver", "Could not resolve address %s", fields[3].GetString().c_str());
return;
@@ -117,8 +119,8 @@ void RealmList::UpdateRealms(bool init)
ip::address localAddress = (*endPoint).endpoint().address();
boost::asio::ip::tcp::resolver::query localSubmaskQuery(ip::tcp::v4(), fields[4].GetString(), "");
- endPoint = _resolver->resolve(localSubmaskQuery);
- if (endPoint == end)
+ endPoint = _resolver->resolve(localSubmaskQuery, ec);
+ if (endPoint == end || ec)
{
TC_LOG_ERROR("server.authserver", "Could not resolve address %s", fields[4].GetString().c_str());
return;