2 new config params, better new stream msg, CYsfNodeDir not derived from std::map

pull/1/head
Tom Early 6 years ago
parent 001f3c6c20
commit a0fd7f15aa

@ -107,6 +107,8 @@ ambserv='/etc/systemd/system/ambed.service'
#ip6addr='none'
tcaddress='none'
#tcmodules='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
#ysfenable=false
#ysfmodule='D'
g3support=false
#dbsupport=false
@ -128,7 +130,7 @@ do
ps -aux | grep -e xlxd -e xrfd -e ambed | grep -v grep
fi
echo
echo " Reflector Administration, Version #200715"
echo " Reflector Administration, Version #200716"
echo
echo "ls : List the configuration file"
echo "cl : Clean (remove) compiled objects and executables"

@ -69,6 +69,8 @@ WriteMemFile () {
[ -z ${ip6addr+x} ] || echo "ip6addr='$ip6addr'" >> $file
[ -z ${tcaddress+x} ] || echo "tcaddress='$tcaddress'" >> $file
[ -z ${tcmodules+x} ] || echo "tcmodules='$tcmodules'" >> $file
[ -z ${ysfenable+x} ] || echo "ysfenable=$ysfenable" >> $file
[ -z ${ysfmodule+x} ] || echo "ysfmodule='$ysfmodule'" >> $file
[ -z ${g3support+x} ] || echo "g3support=$g3support" >> $file
[ -z ${dbsupport+x} ] || echo "dbsupport=$dbsupport" >> $file
}
@ -96,6 +98,16 @@ WriteSRCHFile () {
echo "#define TRANSCODED_MODULES \"${tcmodules}\"" >> $file
fi
fi
if [ -z ${ysfenable+x} ]; then
echo "#define YSF_AUTOLINK_ENABLE ${ysfenable_d}" >> $file
else
echo "#define YSF_AUTOLINK_ENABLE ${ysfenable}" >> $file
fi
if [ -z ${ysfmodule+x} ]; then
echo "#define YSF_AUTOLINK_MODULE '${ysfmodule_d}'" >> $file
else
echo "#define YSF_AUTOLINK_MODULE '${ysfmodule}'" >> $file
fi
if [ -z ${g3support+x} ]; then
m=${g3support_d}
else
@ -192,6 +204,8 @@ ip4addr_d='none'
ip6addr_d='none'
tcaddress_d='none'
tcmodules_d='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ysfenable_d=false
ysfmodule_d='D'
g3support_d=false
dbsupport_d=false
@ -229,7 +243,7 @@ while [[ "$key" != q* ]]
do
clear
echo
echo " Reflector Configuration, Version #200715"
echo " Reflector Configuration, Version #200716"
echo
echo -n "cs : Reflector Callsign = "; EvaluateVar callsign{,_d}
echo -n "nm : Number of Modules = "; EvaluateVar nummod{,_d}
@ -240,6 +254,12 @@ do
if [ ! -z ${tcaddress+x} ]; then
echo -n "tm : Transcoder Modules = "; EvaluateVar tcmodules{,_d}
fi
echo -n "ye : YSF Autolink Enable = "; EvaluateVar ysfenable{,_d}
if [ ! -z ${ysfenable+x} ]; then
if [[ "$ysfenable" == true ]]; then
echo -n "ym : YSF Autolink Module = "; EvaluateVar ysfmodule{,_d}
fi
fi
fi
echo -n "g3 : Icom G3 Support = "; EvaluateVar g3support{,_d}
echo -n "db : Debugging Support = "; EvaluateVar dbsupport{,_d}
@ -263,6 +283,10 @@ do
elif [[ "$key" == i6* ]]; then ip6addr="$value"
elif [[ "$key" == tc* ]]; then tcaddress="$value"
elif [[ "$key" == tm* ]]; then tcmodules="${value^^}"
elif [[ "$key" == ye* ]]; then SetBooleanValue ysfenable "$value"
elif [[ "$key" == ym* ]]; then
ysfmodule="${value^^}"
ysfmodule="${ysfmodule:0:1}"
elif [[ "$key" == g3* ]]; then SetBooleanValue g3support "$value"
elif [[ "$key" == db* ]]; then SetBooleanValue dbsupport "$value"
elif [[ "$key" == w* ]]; then
@ -276,6 +300,8 @@ do
elif [[ "$value" == i6* ]]; then unset ip6addr
elif [[ "$value" == tc* ]]; then unset tcaddress
elif [[ "$value" == tm* ]]; then unset tcmodules
elif [[ "$value" == ye* ]]; then unset ysfenable ysfmodule
elif [[ "$value" == ym* ]]; then unset ysfmodule
elif [[ "$value" == g3* ]]; then unset g3support
elif [[ "$value" == db* ]]; then unset dbsupport
fi

@ -234,8 +234,7 @@ CPacketStream *CReflector::OpenStream(CDvHeaderPacket *DvHeader, CClient *client
stream->Push(DvHeader);
// report
std::cout << "Opening stream on module " << module << " for client " << client->GetCallsign()
<< " with sid " << DvHeader->GetStreamId() << std::endl;
std::cout << "Opening stream on module " << module << " for client " << client->GetCallsign() << " with sid " << DvHeader->GetStreamId() << " by user " << DvHeader->GetMyCallsign() << std::endl;
// notify
g_Reflector.OnStreamOpen(stream->GetUserCallsign());
@ -248,8 +247,7 @@ CPacketStream *CReflector::OpenStream(CDvHeaderPacket *DvHeader, CClient *client
else
{
// report
std::cout << "Detected stream loop on module " << DvHeader->GetRpt2Module() << " for client " << client->GetCallsign()
<< " with sid " << DvHeader->GetStreamId() << std::endl;
std::cerr << "Detected stream loop on module " << DvHeader->GetRpt2Module() << " for client " << client->GetCallsign() << " with sid " << DvHeader->GetStreamId() << std::endl;
}
}
}

@ -34,9 +34,6 @@
#include "cysfnode.h"
////////////////////////////////////////////////////////////////////////////////////////
// define
// compare function for std::map::find
struct CYsfNodeDirCallsignCompare
@ -48,7 +45,9 @@ struct CYsfNodeDirCallsignCompare
////////////////////////////////////////////////////////////////////////////////////////
// class
class CYsfNodeDir : public std::map <CCallsign, CYsfNode, CYsfNodeDirCallsignCompare>
using CsNodeMap = std::map<CCallsign, CYsfNode, CYsfNodeDirCallsignCompare>;
class CYsfNodeDir
{
public:
// constructor
@ -71,6 +70,13 @@ public:
// find
bool FindFrequencies(const CCallsign &, uint32 *, uint32 *);
// pass-thru
void clear() { m_map.clear(); }
size_t size() { return m_map.size(); }
CsNodeMap::iterator find(const CCallsign &cs) { return m_map.find(cs); }
CsNodeMap::iterator end() { return m_map.end(); }
std::pair<CsNodeMap::iterator, bool> insert(const std::pair<CCallsign, CYsfNode> &pair) { return m_map.insert(pair); }
protected:
// thread
static void Thread(CYsfNodeDir *);
@ -88,6 +94,7 @@ protected:
// thread
std::atomic<bool> keep_running;
std::thread *m_pThread;
CsNodeMap m_map;
};

@ -34,19 +34,9 @@
class CYsfUtils
{
public:
// constructor
CYsfUtils() {};
// destructor
virtual ~CYsfUtils() {};
// operation
static void DecodeVD2Vchs(uint8 *, uint8 **);
static void EncodeVD2Vch(uint8 *, uint8 *);
protected:
// data
};
////////////////////////////////////////////////////////////////////////////////////////

@ -137,8 +137,9 @@
#define YSF_KEEPALIVE_TIMEOUT (YSF_KEEPALIVE_PERIOD*10) // in seconds
#define YSF_DEFAULT_NODE_TX_FREQ 437000000 // in Hz
#define YSF_DEFAULT_NODE_RX_FREQ 437000000 // in Hz
#define YSF_AUTOLINK_ENABLE 0 // 1 = enable, 0 = disable auto-link
#define YSF_AUTOLINK_MODULE 'B' // module for client to auto-link to
// the following two defines are now in configure.h
// #define YSF_AUTOLINK_ENABLE 0 // 1 = enable, 0 = disable auto-link
// #define YSF_AUTOLINK_MODULE 'B' // module for client to auto-link to
#endif
#ifndef NO_G3

Loading…
Cancel
Save

Powered by TurnKey Linux.