summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/net')
-rw-r--r--src/net/ea/network.cpp20
-rw-r--r--src/net/serverinfo.h4
2 files changed, 17 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;
diff --git a/src/net/serverinfo.h b/src/net/serverinfo.h
index df7a854e7..515595f1f 100644
--- a/src/net/serverinfo.h
+++ b/src/net/serverinfo.h
@@ -49,6 +49,7 @@ public:
Type type;
std::string name;
std::string hostname;
+ std::string althostname;
uint16_t port;
std::string description;
@@ -62,6 +63,7 @@ public:
type(TMWATHENA),
name(),
hostname(),
+ althostname(),
port(6901),
description(),
registerUrl(),
@@ -76,6 +78,7 @@ public:
type(info.type),
name(info.name),
hostname(info.hostname),
+ althostname(info.althostname),
port(info.port),
description(info.description),
registerUrl(info.registerUrl),
@@ -97,6 +100,7 @@ public:
type = UNKNOWN;
name.clear();
hostname.clear();
+ althostname.clear();
port = 0;
description.clear();
registerUrl.clear();