debugging interconnect

unstable
Tom Early 4 years ago
parent c6133927d2
commit 0b2873656f

9
.gitignore vendored

@ -1,11 +1,10 @@
*.o *.o
*.d *.d
.vscode .vscode
./*.blacklist reflector/urfd.blacklist
./*.whitelist reflector/urfd.whitelist
./*.interlink reflector/urfd.interlink
./*.terminal reflector/urfd.terminal
./*.service
configure.mk configure.mk
configure.h configure.h
configure.sql configure.sql

@ -157,7 +157,7 @@ void CURFProtocol::Task(void)
} }
else if ( IsValidKeepAlivePacket(Buffer, &Callsign) ) else if ( IsValidKeepAlivePacket(Buffer, &Callsign) )
{ {
//std::cout << "URF keepalive packet from " << Callsign << " at " << Ip << std::endl; std::cout << "URF keepalive packet from " << Callsign << " at " << Ip << std::endl;
// find peer // find peer
CPeers *peers = g_Reflector.GetPeers(); CPeers *peers = g_Reflector.GetPeers();
@ -407,9 +407,10 @@ void CURFProtocol::OnDvFramePacketIn(std::unique_ptr<CDvFramePacket> &DvFrame, c
bool CURFProtocol::IsValidKeepAlivePacket(const CBuffer &Buffer, CCallsign *callsign) bool CURFProtocol::IsValidKeepAlivePacket(const CBuffer &Buffer, CCallsign *callsign)
{ {
bool valid = false; bool valid = false;
if (Buffer.size() == 9) uint8_t magic[] = { 'P','I','N','G' };
if ((10 == Buffer.size()) && (0 == Buffer.Compare(magic, 4)))
{ {
callsign->SetCallsign(Buffer.data(), 8); callsign->CodeIn(Buffer.data()+4);
valid = callsign->IsValid(); valid = callsign->IsValid();
} }
return valid; return valid;
@ -426,7 +427,7 @@ bool CURFProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *callsi
valid = callsign->IsValid(); valid = callsign->IsValid();
*version = CVersion(Buffer.at(37), Buffer.at(38), Buffer.at(39)); *version = CVersion(Buffer.at(37), Buffer.at(38), Buffer.at(39));
memcpy(modules, Buffer.data()+10, 27); memcpy(modules, Buffer.data()+10, 27);
for ( unsigned i = 0; i < ::strlen(modules), valid; i++ ) for ( unsigned i = 0; i < strlen(modules); i++ )
{ {
valid &= (nullptr != strchr(ACTIVE_MODULES, modules[i])); valid &= (nullptr != strchr(ACTIVE_MODULES, modules[i]));
} }
@ -456,7 +457,7 @@ bool CURFProtocol::IsValidAckPacket(const CBuffer &Buffer, CCallsign *callsign,
valid = callsign->IsValid(); valid = callsign->IsValid();
*version = CVersion(Buffer.at(37), Buffer.at(38), Buffer.at(39)); *version = CVersion(Buffer.at(37), Buffer.at(38), Buffer.at(39));
memcpy(modules, Buffer.data()+10, 27); memcpy(modules, Buffer.data()+10, 27);
for ( unsigned i = 0; i < ::strlen(modules), valid; i++ ) for ( unsigned i = 0; i < strlen(modules); i++ )
{ {
valid &= (nullptr != strchr(ACTIVE_MODULES, modules[i])); valid &= (nullptr != strchr(ACTIVE_MODULES, modules[i]));
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.