Always disconnect CNetworkVatlib when shutting down.

This commit is contained in:
Mathew Sutcliffe
2017-05-15 21:59:48 +01:00
parent 04af0e8af3
commit 5b8d76c06c
2 changed files with 5 additions and 7 deletions

View File

@@ -216,16 +216,12 @@ namespace BlackCore
CStatusMessage CContextNetwork::disconnectFromNetwork()
{
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
if (this->m_network->isConnected())
if (this->m_network->isConnected() || this->m_network->isPendingConnection())
{
this->m_currentStatus = INetwork::Disconnecting; // as semaphore we are going to disconnect
this->m_network->terminateConnection();
return CStatusMessage({ CLogCategory::validation() }, CStatusMessage::SeverityInfo, "Connection terminating");
}
else if (this->isPendingConnection())
{
return CStatusMessage({ CLogCategory::validation() }, CStatusMessage::SeverityInfo, "Pending connection, please wait");
}
else
{
return CStatusMessage({ CLogCategory::validation() }, CStatusMessage::SeverityWarning, "Already disconnected");

View File

@@ -39,6 +39,7 @@
#include "blackmisc/logmessage.h"
#include "blackmisc/logcategory.h"
#include "blackmisc/statusmessage.h"
#include "blackmisc/verify.h"
#include "vatlib/vatlib.h"
#include <QChar>
@@ -157,7 +158,8 @@ namespace BlackCore
CNetworkVatlib::~CNetworkVatlib()
{
Q_ASSERT_X(isDisconnected(), Q_FUNC_INFO, "CNetworkVatlib destroyed while still connected.");
BLACK_VERIFY_X(isDisconnected(), Q_FUNC_INFO, "CNetworkVatlib destroyed while still connected.");
terminateConnection();
}
void CNetworkVatlib::process()
@@ -466,7 +468,7 @@ namespace BlackCore
void CNetworkVatlib::terminateConnection()
{
stopPositionTimers();
if (m_net && isConnected())
if (m_net && !isDisconnected())
{
// Process all pending tasks before logging off
process();