summaryrefslogtreecommitdiff
path: root/src/net/ea
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/ea')
-rw-r--r--src/net/ea/network.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/net/ea/network.cpp b/src/net/ea/network.cpp
index 2b9c048f7..085901743 100644
--- a/src/net/ea/network.cpp
+++ b/src/net/ea/network.cpp
@@ -105,6 +105,7 @@ bool Network::connect(ServerInfo server)
server.hostname.c_str(), server.port);
mServer.hostname = server.hostname;
+ mServer.althostname = server.althostname;
mServer.port = server.port;
// Reset to sane values
@@ -190,13 +191,18 @@ bool Network::realConnect()
if (TcpNet::resolveHost(&ipAddress, mServer.hostname.c_str(),
mServer.port) == -1)
{
- const std::string errorMessage = std::string(
- // TRANSLATORS: error message
- _("Unable to resolve host \"")).append(
- mServer.hostname).append("\"");
- setError(errorMessage);
- logger->log("TcpNet::ResolveHost: %s", errorMessage.c_str());
- return false;
+ if (mServer.althostname.empty() || TcpNet::resolveHost(&ipAddress,
+ mServer.althostname.c_str(), mServer.port) == -1)
+ {
+ const std::string errorMessage = std::string(
+ // TRANSLATORS: error message
+ _("Unable to resolve host \"")).append(
+ mServer.hostname).append("\"");
+ setError(errorMessage);
+ logger->log("TcpNet::ResolveHost: %s", errorMessage.c_str());
+ return false;
+ }
+ logger->log("using alt host name: %s", mServer.althostname.c_str());
}
mState = CONNECTING;