diff --git a/src/blackcore/fsd/fsdclient.cpp b/src/blackcore/fsd/fsdclient.cpp index 036f5b05c..6f6ce9a1e 100644 --- a/src/blackcore/fsd/fsdclient.cpp +++ b/src/blackcore/fsd/fsdclient.cpp @@ -655,13 +655,17 @@ namespace BlackCore void CFSDClient::sendClientResponse(ClientQueryType queryType, const QString &receiver) { - QStringList responseData; + if (queryType == ClientQueryType::Unknown) { return; } if (queryType == ClientQueryType::IsValidATC) { this->handleIllegalFsdState("Never use sendClientResponse with IsValidATC from the client"); return; } - else if (queryType == ClientQueryType::Capabilities) + + this->increaseStatisticsValue(QStringLiteral("sendClientResponse"), toQString(queryType)); + + QStringList responseData; + if (queryType == ClientQueryType::Capabilities) { responseData.clear(); if (m_capabilities & Capabilities::AtcInfo) responseData.push_back(toQString(Capabilities::AtcInfo) % "=1"); @@ -738,7 +742,6 @@ namespace BlackCore { this->handleIllegalFsdState(QStringLiteral("Dont send '%1' as pilot client!").arg(toQString(ClientQueryType::AircraftConfig))); } - this->increaseStatisticsValue(QStringLiteral("sendClientResponse"), toQString(queryType)); } void CFSDClient::sendClientIdentification(const QString &fsdChallenge) @@ -786,12 +789,14 @@ namespace BlackCore m_messageTypeMapping["#DA"] = MessageType::DeleteATC; m_messageTypeMapping["#DP"] = MessageType::DeletePilot; m_messageTypeMapping["$FP"] = MessageType::FlightPlan; + m_messageTypeMapping["#PC"] = MessageType::FlightPlanAcknowledge; m_messageTypeMapping["$DI"] = MessageType::FsdIdentification; m_messageTypeMapping["$!!"] = MessageType::KillRequest; m_messageTypeMapping["@"] = MessageType::PilotDataUpdate; m_messageTypeMapping["$PI"] = MessageType::Ping; m_messageTypeMapping["$PO"] = MessageType::Pong; m_messageTypeMapping["$ER"] = MessageType::ServerError; + m_messageTypeMapping["#DL"] = MessageType::ServerHeartbeat; m_messageTypeMapping["#TM"] = MessageType::TextMessage; m_messageTypeMapping["#SB"] = MessageType::PilotClientCom; } @@ -1765,8 +1770,10 @@ namespace BlackCore const QStringList tokens = payload.split(':'); switch (messageType) { - case MessageType::AddAtc: /* ignore */ break; - case MessageType::AddPilot: /* ignore */ break; + case MessageType::AddAtc: /* ignore */ break; + case MessageType::AddPilot: /* ignore */ break; + case MessageType::ServerHeartbeat: /* ignore */ break; + case MessageType::FlightPlanAcknowledge: /* ignore */ break; case MessageType::AtcDataUpdate: handleAtcDataUpdate(tokens); break; case MessageType::AuthChallenge: handleAuthChallenge(tokens); break; case MessageType::AuthResponse: handleAuthResponse(tokens); break; diff --git a/src/blackcore/fsd/messagebase.h b/src/blackcore/fsd/messagebase.h index 88a947295..c646de341 100644 --- a/src/blackcore/fsd/messagebase.h +++ b/src/blackcore/fsd/messagebase.h @@ -17,6 +17,7 @@ #include //! Message type +//! \remark FSD Server docu https://studentweb.uvic.ca/~norrisng/fsd-doc/ enum class MessageType { Unknown, @@ -31,12 +32,14 @@ enum class MessageType DeleteATC, DeletePilot, FlightPlan, + FlightPlanAcknowledge, FsdIdentification, KillRequest, PilotDataUpdate, Ping, Pong, ServerError, + ServerHeartbeat, TextMessage, PilotClientCom, };