diff --git a/src/blackcore/fsd/fsdclient.cpp b/src/blackcore/fsd/fsdclient.cpp index 84783ce6b..6fd0e153d 100644 --- a/src/blackcore/fsd/fsdclient.cpp +++ b/src/blackcore/fsd/fsdclient.cpp @@ -1471,12 +1471,12 @@ namespace BlackCore void CFSDClient::printSocketError(QAbstractSocket::SocketError socketError) { - CLogMessage(this).error(u"FSD socket error: %1") << socketErrorToQString(socketError); + CLogMessage(this).error(u"FSD socket error: %1") << this->socketErrorString(socketError); } void CFSDClient::handleSocketError(QAbstractSocket::SocketError socketError) { - const QString error = socketErrorToQString(socketError); + const QString error = this->socketErrorString(socketError); switch (socketError) { // all named here need a logoff @@ -1850,6 +1850,7 @@ namespace BlackCore QPointer myself(this); QTimer::singleShot(DelayMs, this, [ = ] { + if (!sApp || sApp->isShuttingDown()) { return; } if (myself) { myself->readDataFromSocketMaxLines(newMax); } }); break; @@ -1858,6 +1859,16 @@ namespace BlackCore } } + QString CFSDClient::socketErrorString(QAbstractSocket::SocketError error) const + { + QString e = CFSDClient::socketErrorToQString(error); + if (!m_socket.errorString().isEmpty()) + { + e += QStringLiteral(": ") % m_socket.errorString(); + } + return e; + } + QString CFSDClient::socketErrorToQString(QAbstractSocket::SocketError error) { static const QMetaEnum metaEnum = QMetaEnum::fromType(); diff --git a/src/blackcore/fsd/fsdclient.h b/src/blackcore/fsd/fsdclient.h index d3c1e3e66..ccaebe0b1 100644 --- a/src/blackcore/fsd/fsdclient.h +++ b/src/blackcore/fsd/fsdclient.h @@ -333,7 +333,8 @@ namespace BlackCore void readDataFromSocket() { this->readDataFromSocketMaxLines(); } void readDataFromSocketMaxLines(int maxLines = -1); - QString socketErrorToQString(QAbstractSocket::SocketError error); + QString socketErrorString(QAbstractSocket::SocketError error) const; + static QString socketErrorToQString(QAbstractSocket::SocketError error); void parseMessage(const QString &lineRaw); //! Init. the message types