Added check if network connection can be established

as discussed in #101
This commit is contained in:
Klaus Basan
2014-01-31 02:13:38 +01:00
parent b74aaf7467
commit 291c52d4e0

View File

@@ -5,6 +5,7 @@
#include "context_network.h" #include "context_network.h"
#include "coreruntime.h" #include "coreruntime.h"
#include "blackmisc/networkchecks.h"
#include "blackmisc/avatcstationlist.h" #include "blackmisc/avatcstationlist.h"
#include "blackcore/context_settings_interface.h" #include "blackcore/context_settings_interface.h"
#include <QtXml/QDomElement> #include <QtXml/QDomElement>
@@ -106,6 +107,9 @@ namespace BlackCore
msgs.push_back(CStatusMessage(CStatusMessage::TypeTrafficNetwork, CStatusMessage::SeverityWarning, "Already connected")); msgs.push_back(CStatusMessage(CStatusMessage::TypeTrafficNetwork, CStatusMessage::SeverityWarning, "Already connected"));
} }
else else
{
QString msg;
if (CNetworkChecks::canConnect(currentServer, msg, 2000))
{ {
INetwork::LoginMode mode = static_cast<INetwork::LoginMode>(loginMode); INetwork::LoginMode mode = static_cast<INetwork::LoginMode>(loginMode);
this->m_ownAircraft.setPilot(currentServer.getUser()); // still needed? this->m_ownAircraft.setPilot(currentServer.getUser()); // still needed?
@@ -115,10 +119,16 @@ namespace BlackCore
this->m_network->presetIcaoCodes(this->m_ownAircraft.getIcaoInfo()); this->m_network->presetIcaoCodes(this->m_ownAircraft.getIcaoInfo());
this->m_network->setOwnAircraft(this->m_ownAircraft); this->m_network->setOwnAircraft(this->m_ownAircraft);
this->m_network->initiateConnection(); this->m_network->initiateConnection();
QString msg = "Connection pending "; msg = "Connection pending ";
msg.append(" ").append(currentServer.getAddress()).append(" ").append(QString::number(currentServer.getPort())); msg.append(" ").append(currentServer.getAddress()).append(" ").append(QString::number(currentServer.getPort()));
msgs.push_back(CStatusMessage(CStatusMessage::TypeTrafficNetwork, CStatusMessage::SeverityInfo, msg)); msgs.push_back(CStatusMessage(CStatusMessage::TypeTrafficNetwork, CStatusMessage::SeverityInfo, msg));
} }
else
{
// I cannot connect, add error message
msgs.push_back(CStatusMessage(CStatusMessage::TypeTrafficNetwork, CStatusMessage::SeverityError, msg));
}
}
return msgs; return msgs;
} }