Accept rejected or invalid transmissions as being 'in' despite not being
relayed. Also give extra headroom on the convolution decoders.
This commit is contained in:
parent
a8fe55acc4
commit
50337639b2
|
@ -434,9 +434,9 @@ bool CDStarControl::writeModem(unsigned char *data, unsigned int len)
|
||||||
return false;
|
return false;
|
||||||
} else if (type == TAG_DATA1) {
|
} else if (type == TAG_DATA1) {
|
||||||
if (m_rfState == RS_RF_REJECTED) {
|
if (m_rfState == RS_RF_REJECTED) {
|
||||||
return false;
|
return true;
|
||||||
} else if (m_rfState == RS_RF_INVALID) {
|
} else if (m_rfState == RS_RF_INVALID) {
|
||||||
return false;
|
return true;
|
||||||
} else if (m_rfState == RS_RF_LISTENING) {
|
} else if (m_rfState == RS_RF_LISTENING) {
|
||||||
// The sync is regenerated by the modem so can do exact match
|
// The sync is regenerated by the modem so can do exact match
|
||||||
if (::memcmp(data + 1U + DSTAR_VOICE_FRAME_LENGTH_BYTES, DSTAR_SYNC_BYTES, DSTAR_DATA_FRAME_LENGTH_BYTES) == 0) {
|
if (::memcmp(data + 1U + DSTAR_VOICE_FRAME_LENGTH_BYTES, DSTAR_SYNC_BYTES, DSTAR_DATA_FRAME_LENGTH_BYTES) == 0) {
|
||||||
|
|
|
@ -554,7 +554,7 @@ bool CM17Control::processRFHeader(bool lateEntry)
|
||||||
if (type != M17_ENCRYPTION_TYPE_NONE) {
|
if (type != M17_ENCRYPTION_TYPE_NONE) {
|
||||||
LogMessage("M17, access attempt with encryption from %s to %s", source.c_str(), dest.c_str());
|
LogMessage("M17, access attempt with encryption from %s to %s", source.c_str(), dest.c_str());
|
||||||
m_rfState = RS_RF_REJECTED;
|
m_rfState = RS_RF_REJECTED;
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -563,7 +563,7 @@ bool CM17Control::processRFHeader(bool lateEntry)
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
LogMessage("M17, invalid access attempt from %s to %s", source.c_str(), dest.c_str());
|
LogMessage("M17, invalid access attempt from %s to %s", source.c_str(), dest.c_str());
|
||||||
m_rfState = RS_RF_REJECTED;
|
m_rfState = RS_RF_REJECTED;
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,8 +56,8 @@ m_newMetrics(NULL),
|
||||||
m_decisions(NULL),
|
m_decisions(NULL),
|
||||||
m_dp(NULL)
|
m_dp(NULL)
|
||||||
{
|
{
|
||||||
m_metrics1 = new uint16_t[16U];
|
m_metrics1 = new uint16_t[20U];
|
||||||
m_metrics2 = new uint16_t[16U];
|
m_metrics2 = new uint16_t[20U];
|
||||||
m_decisions = new uint64_t[300U];
|
m_decisions = new uint64_t[300U];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -214,7 +214,7 @@ bool CNXDNControl::processVoice(unsigned char usc, unsigned char option, unsigne
|
||||||
unsigned short srcId = layer3.getSourceUnitId();
|
unsigned short srcId = layer3.getSourceUnitId();
|
||||||
if (srcId != m_id) {
|
if (srcId != m_id) {
|
||||||
m_rfState = RS_RF_REJECTED;
|
m_rfState = RS_RF_REJECTED;
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -375,7 +375,7 @@ bool CNXDNControl::processVoice(unsigned char usc, unsigned char option, unsigne
|
||||||
if (m_selfOnly) {
|
if (m_selfOnly) {
|
||||||
if (srcId != m_id) {
|
if (srcId != m_id) {
|
||||||
m_rfState = RS_RF_REJECTED;
|
m_rfState = RS_RF_REJECTED;
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,8 +44,8 @@ m_newMetrics(NULL),
|
||||||
m_decisions(NULL),
|
m_decisions(NULL),
|
||||||
m_dp(NULL)
|
m_dp(NULL)
|
||||||
{
|
{
|
||||||
m_metrics1 = new uint16_t[16U];
|
m_metrics1 = new uint16_t[20U];
|
||||||
m_metrics2 = new uint16_t[16U];
|
m_metrics2 = new uint16_t[20U];
|
||||||
m_decisions = new uint64_t[300U];
|
m_decisions = new uint64_t[300U];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,6 @@
|
||||||
#if !defined(VERSION_H)
|
#if !defined(VERSION_H)
|
||||||
#define VERSION_H
|
#define VERSION_H
|
||||||
|
|
||||||
const char* VERSION = "20210618";
|
const char* VERSION = "20210625";
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -233,7 +233,7 @@ bool CYSFControl::processVWData(bool valid, unsigned char *data)
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid);
|
LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid);
|
||||||
m_rfState = RS_RF_REJECTED;
|
m_rfState = RS_RF_REJECTED;
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -402,7 +402,7 @@ bool CYSFControl::processDNData(bool valid, unsigned char *data)
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid);
|
LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid);
|
||||||
m_rfState = RS_RF_REJECTED;
|
m_rfState = RS_RF_REJECTED;
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -598,7 +598,7 @@ bool CYSFControl::processDNData(bool valid, unsigned char *data)
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid);
|
LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid);
|
||||||
m_rfState = RS_RF_REJECTED;
|
m_rfState = RS_RF_REJECTED;
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -704,7 +704,7 @@ bool CYSFControl::processFRData(bool valid, unsigned char *data)
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid);
|
LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid);
|
||||||
m_rfState = RS_RF_REJECTED;
|
m_rfState = RS_RF_REJECTED;
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,8 +43,8 @@ m_newMetrics(NULL),
|
||||||
m_decisions(NULL),
|
m_decisions(NULL),
|
||||||
m_dp(NULL)
|
m_dp(NULL)
|
||||||
{
|
{
|
||||||
m_metrics1 = new uint16_t[16U];
|
m_metrics1 = new uint16_t[20U];
|
||||||
m_metrics2 = new uint16_t[16U];
|
m_metrics2 = new uint16_t[20U];
|
||||||
m_decisions = new uint64_t[180U];
|
m_decisions = new uint64_t[180U];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue