1
0
mirror of https://github.com/ShaYmez/xlxd.git synced 2024-09-28 15:56:34 -04:00

Improve log messages for DMRMmdvm and DMRPlus protocol connect/auth/config packets with source IP address

This commit is contained in:
yngwiechou 2017-08-30 10:51:28 +08:00
parent 6633a59a22
commit b46e5f5a4f
4 changed files with 26 additions and 16 deletions

View File

@ -130,8 +130,8 @@ void CDmrmmdvmProtocol::Task(void)
//std::cout << "DMRmmdvm DV last frame" << std::endl;
OnDvLastFramePacketIn(LastFrame, &Ip);
}
else if ( IsValidConnectPacket(Buffer, &Callsign) )
}
else if ( IsValidConnectPacket(Buffer, &Callsign, Ip) )
{
std::cout << "DMRmmdvm connect packet from " << Callsign << " at " << Ip << std::endl;
@ -150,7 +150,7 @@ void CDmrmmdvmProtocol::Task(void)
}
}
else if ( IsValidAuthenticationPacket(Buffer, &Callsign) )
else if ( IsValidAuthenticationPacket(Buffer, &Callsign, Ip) )
{
std::cout << "DMRmmdvm authentication packet from " << Callsign << " at " << Ip << std::endl;
@ -203,7 +203,7 @@ void CDmrmmdvmProtocol::Task(void)
}
g_Reflector.ReleaseClients();
}
else if ( IsValidConfigPacket(Buffer, &Callsign) )
else if ( IsValidConfigPacket(Buffer, &Callsign, Ip) )
{
std::cout << "DMRmmdvm configuration packet from " << Callsign << " at " << Ip << std::endl;
@ -517,7 +517,7 @@ bool CDmrmmdvmProtocol::IsValidKeepAlivePacket(const CBuffer &Buffer, CCallsign
return valid;
}
bool CDmrmmdvmProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *callsign)
bool CDmrmmdvmProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *callsign, const CIp &Ip)
{
uint8 tag[] = { 'R','P','T','L' };
@ -530,13 +530,13 @@ bool CDmrmmdvmProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *c
valid = callsign->IsValid();
if ( !valid)
{
std::cout << "DMRmmdvm connect packet from unrecognized id " << (int)callsign->GetDmrid() << std::endl;
std::cout << "DMRmmdvm connect packet from IP address " << Ip << " / unrecognized id " << (int)callsign->GetDmrid() << std::endl;
}
}
return valid;
}
bool CDmrmmdvmProtocol::IsValidAuthenticationPacket(const CBuffer &Buffer, CCallsign *callsign)
bool CDmrmmdvmProtocol::IsValidAuthenticationPacket(const CBuffer &Buffer, CCallsign *callsign, const CIp &Ip)
{
uint8 tag[] = { 'R','P','T','K' };
@ -547,6 +547,11 @@ bool CDmrmmdvmProtocol::IsValidAuthenticationPacket(const CBuffer &Buffer, CCall
callsign->SetDmrid(uiRptrId, true);
callsign->SetModule('B');
valid = callsign->IsValid();
if ( !valid)
{
std::cout << "DMRmmdvm authnetication packet from IP address " << Ip << " / unrecognized id " << (int)callsign->GetDmrid() << std::endl;
}
}
return valid;
}
@ -566,7 +571,7 @@ bool CDmrmmdvmProtocol::IsValidDisconnectPacket(const CBuffer &Buffer, CCallsign
return valid;
}
bool CDmrmmdvmProtocol::IsValidConfigPacket(const CBuffer &Buffer, CCallsign *callsign)
bool CDmrmmdvmProtocol::IsValidConfigPacket(const CBuffer &Buffer, CCallsign *callsign, const CIp &Ip)
{
uint8 tag[] = { 'R','P','T','C' };
@ -577,6 +582,11 @@ bool CDmrmmdvmProtocol::IsValidConfigPacket(const CBuffer &Buffer, CCallsign *ca
callsign->SetDmrid(uiRptrId, true);
callsign->SetModule('B');
valid = callsign->IsValid();
if ( !valid)
{
std::cout << "DMRmmdvm config packet from IP address " << Ip << " / unrecognized id " << (int)callsign->GetDmrid() << std::endl;
}
}
return valid;
}
@ -671,7 +681,7 @@ bool CDmrmmdvmProtocol::IsValidDvHeaderPacket(const CBuffer &Buffer, CDvHeaderPa
}
// build DVHeader
CCallsign csMY = CCallsign("", uiSrcId);
CCallsign csMY = CCallsign("", uiSrcId);
CCallsign rpt1 = CCallsign("", uiRptrId);
rpt1.SetModule('B');
CCallsign rpt2 = m_ReflectorCallsign;

View File

@ -86,10 +86,10 @@ protected:
bool OnDvHeaderPacketIn(CDvHeaderPacket *, const CIp &, uint8, uint8);
// packet decoding helpers
bool IsValidConnectPacket(const CBuffer &, CCallsign *);
bool IsValidAuthenticationPacket(const CBuffer &, CCallsign *);
bool IsValidConnectPacket(const CBuffer &, CCallsign *, const CIp &);
bool IsValidAuthenticationPacket(const CBuffer &, CCallsign *, const CIp &);
bool IsValidDisconnectPacket(const CBuffer &, CCallsign *);
bool IsValidConfigPacket(const CBuffer &, CCallsign *);
bool IsValidConfigPacket(const CBuffer &, CCallsign *, const CIp &);
bool IsValidOptionPacket(const CBuffer &, CCallsign *);
bool IsValidKeepAlivePacket(const CBuffer &, CCallsign *);
bool IsValidRssiPacket(const CBuffer &, CCallsign *, int *);

View File

@ -125,7 +125,7 @@ void CDmrplusProtocol::Task(void)
delete Header;
}
}
else if ( IsValidConnectPacket(Buffer, &Callsign, &ToLinkModule) )
else if ( IsValidConnectPacket(Buffer, &Callsign, &ToLinkModule, Ip) )
{
//std::cout << "DMRplus keepalive/connect packet for module " << ToLinkModule << " from " << Callsign << " at " << Ip << std::endl;
@ -404,7 +404,7 @@ void CDmrplusProtocol::HandleKeepalives(void)
////////////////////////////////////////////////////////////////////////////////////////
// packet decoding helpers
bool CDmrplusProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *callsign, char *reflectormodule)
bool CDmrplusProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *callsign, char *reflectormodule, const CIp &Ip)
{
bool valid = false;
if ( Buffer.size() == 31 )
@ -421,7 +421,7 @@ bool CDmrplusProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *ca
valid = (callsign->IsValid() && (std::isupper(*reflectormodule) || (*reflectormodule == ' ')) );
if ( !valid)
{
std::cout << "DMRplus connect packet from unrecognized id " << (int)callsign->GetDmrid() << std::endl;
std::cout << "DMRplus connect packet from IP address " << Ip << " / unrecognized id " << (int)callsign->GetDmrid() << std::endl;
}
}
return valid;

View File

@ -78,7 +78,7 @@ protected:
bool OnDvHeaderPacketIn(CDvHeaderPacket *, const CIp &);
// packet decoding helpers
bool IsValidConnectPacket(const CBuffer &, CCallsign *, char *);
bool IsValidConnectPacket(const CBuffer &, CCallsign *, char *, const CIp &);
bool IsValidDisconnectPacket(const CBuffer &, CCallsign *, char *);
bool IsValidDvHeaderPacket(const CIp &, const CBuffer &, CDvHeaderPacket **);
bool IsValidDvFramePacket(const CIp &, const CBuffer &, CDvFramePacket **);