mirror of
https://github.com/g4klx/DMRGateway
synced 2025-12-22 06:05:36 +08:00
Improve the MMDVM protocol support.
This commit is contained in:
@@ -245,27 +245,31 @@ void CMMDVMNetwork::clock(unsigned int ms)
|
|||||||
|
|
||||||
m_socket.write(ack, 10U, m_rptAddress, m_rptPort);
|
m_socket.write(ack, 10U, m_rptAddress, m_rptPort);
|
||||||
} else if (::memcmp(m_buffer, "RPTK", 4U) == 0) {
|
} else if (::memcmp(m_buffer, "RPTK", 4U) == 0) {
|
||||||
unsigned char ack[6U];
|
unsigned char ack[10U];
|
||||||
::memcpy(ack, "RPTACK", 6U);
|
::memcpy(ack + 0U, "RPTACK", 6U);
|
||||||
m_socket.write(ack, 6U, m_rptAddress, m_rptPort);
|
::memcpy(ack + 6U, m_netId, 4U);
|
||||||
|
m_socket.write(ack, 10U, m_rptAddress, m_rptPort);
|
||||||
} else if (::memcmp(m_buffer, "RPTC", 4U) == 0) {
|
} else if (::memcmp(m_buffer, "RPTC", 4U) == 0) {
|
||||||
m_configLen = length - 8U;
|
m_configLen = length - 8U;
|
||||||
m_configData = new unsigned char[m_configLen];
|
m_configData = new unsigned char[m_configLen];
|
||||||
::memcpy(m_configData, m_buffer + 8U, m_configLen);
|
::memcpy(m_configData, m_buffer + 8U, m_configLen);
|
||||||
|
|
||||||
unsigned char ack[6U];
|
unsigned char ack[10U];
|
||||||
::memcpy(ack, "RPTACK", 6U);
|
::memcpy(ack + 0U, "RPTACK", 6U);
|
||||||
m_socket.write(ack, 6U, m_rptAddress, m_rptPort);
|
::memcpy(ack + 6U, m_netId, 4U);
|
||||||
|
m_socket.write(ack, 10U, m_rptAddress, m_rptPort);
|
||||||
} else if (::memcmp(m_buffer, "RPTO", 4U) == 0) {
|
} else if (::memcmp(m_buffer, "RPTO", 4U) == 0) {
|
||||||
m_options = std::string((char*)(m_buffer + 8U), length - 8U);
|
m_options = std::string((char*)(m_buffer + 8U), length - 8U);
|
||||||
|
|
||||||
unsigned char ack[6U];
|
unsigned char ack[10U];
|
||||||
::memcpy(ack, "RPTACK", 6U);
|
::memcpy(ack + 0U, "RPTACK", 6U);
|
||||||
m_socket.write(ack, 6U, m_rptAddress, m_rptPort);
|
::memcpy(ack + 6U, m_netId, 4U);
|
||||||
|
m_socket.write(ack, 10U, m_rptAddress, m_rptPort);
|
||||||
} else if (::memcmp(m_buffer, "RPTPING", 7U) == 0) {
|
} else if (::memcmp(m_buffer, "RPTPING", 7U) == 0) {
|
||||||
unsigned char pong[7U];
|
unsigned char pong[11U];
|
||||||
::memcpy(pong, "MSTPONG", 6U);
|
::memcpy(pong + 0U, "MSTPONG", 7U);
|
||||||
m_socket.write(pong, 7U, m_rptAddress, m_rptPort);
|
::memcpy(pong + 7U, m_netId, 4U);
|
||||||
|
m_socket.write(pong, 11U, m_rptAddress, m_rptPort);
|
||||||
} else {
|
} else {
|
||||||
CUtils::dump("Unknown packet from the master", m_buffer, length);
|
CUtils::dump("Unknown packet from the master", m_buffer, length);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user