From e004f6961dd47f829e939fab12d457661c3b4a03 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 6 Sep 2020 16:08:02 +0200 Subject: [PATCH 1/2] Update FCSNetwork.h FCS protocol OPTIONS --- YSFGateway/FCSNetwork.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/YSFGateway/FCSNetwork.h b/YSFGateway/FCSNetwork.h index b43beb3..97a4b02 100644 --- a/YSFGateway/FCSNetwork.h +++ b/YSFGateway/FCSNetwork.h @@ -74,7 +74,7 @@ private: CTimer m_resetTimer; FCS_STATE m_state; - void writeOptions(); + void writeOptions(const std::string& reflector); void writeInfo(); void writePing(); }; From 3ed3bbdfe00d7021fe7f63e12a7b5f2803794726 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 6 Sep 2020 16:15:07 +0200 Subject: [PATCH 2/2] Update FCSNetwork.cpp FCS OPTIONS --- YSFGateway/FCSNetwork.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/YSFGateway/FCSNetwork.cpp b/YSFGateway/FCSNetwork.cpp index 38305ff..9b24fa2 100644 --- a/YSFGateway/FCSNetwork.cpp +++ b/YSFGateway/FCSNetwork.cpp @@ -194,14 +194,14 @@ void CFCSNetwork::clock(unsigned int ms) LogMessage("Linked to %s", m_print.c_str()); m_state = FCS_LINKED; writeInfo(); - writeOptions(); + writeOptions(m_print); } if (length == 10 && m_state == FCS_LINKING) { LogMessage("Linked to %s", m_print.c_str()); m_state = FCS_LINKED; writeInfo(); - writeOptions(); + writeOptions(m_print); } if (length == 7 || length == 10 || length == 130) { @@ -279,7 +279,7 @@ void CFCSNetwork::writePing() m_socket.write(m_ping, 25U, m_address, FCS_PORT); } -void CFCSNetwork::writeOptions() +void CFCSNetwork::writeOptions(const std::string& reflector) { if (m_state != FCS_LINKED) return; @@ -288,7 +288,8 @@ void CFCSNetwork::writeOptions() return; ::memset(m_options + 14U, 0x20U, 36U); - ::memcpy(m_options + 14U, m_opt.c_str(), m_opt.size()); + ::memcpy(m_options + 4U, (reflector.substr(0,6)+reflector.substr(7,2)).c_str(), 8U); + ::memcpy(m_options + 12U, m_opt.c_str(), m_opt.size()); if (m_debug) CUtils::dump(1U, "FCS Network Options Sent", m_options, 50U);