From 847de9f470d05187bd950b61a76545aadb611d88 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Sun, 30 Apr 2017 11:01:54 +0100 Subject: [PATCH] Handle unlinking. --- DMRGateway.cpp | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 11a12ab..657d70f 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -115,7 +115,7 @@ m_conf(confFile), m_mmdvm(NULL), m_dmrNetwork(NULL), m_xlxNetwork(NULL), -m_reflector(0U) +m_reflector(4000U) { } @@ -272,16 +272,26 @@ int CDMRGateway::run() status = DMRGWS_REFLECTOR; timer.start(); } else if (flco == FLCO_USER_USER) { - unsigned int reflector = data.getDstId(); - if (reflector != m_reflector) { - LogMessage("Switching to reflector %u", reflector); - m_reflector = reflector; - } + unsigned int id = data.getDstId(); + if (id >= 4000U && id <= 4026U) { + if (id != m_reflector) { + if (id != 4000U) + LogMessage("Linking to reflector %u", id); + else + LogMessage("Unlinking"); - xlxRewrite.process(data); - m_xlxNetwork->write(data); - status = DMRGWS_REFLECTOR; - timer.start(); + m_reflector = id; + } + + xlxRewrite.process(data); + m_xlxNetwork->write(data); + status = DMRGWS_REFLECTOR; + timer.start(); + } else { + m_dmrNetwork->write(data); + status = DMRGWS_NETWORK; + timer.start(); + } } else { m_dmrNetwork->write(data); status = DMRGWS_NETWORK;