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' #ip6addr='none'
tcaddress='none' tcaddress='none'
#tcmodules='ABCDEFGHIJKLMNOPQRSTUVWXYZ' #tcmodules='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
#ysfenable=false
#ysfmodule='D'
g3support=false g3support=false
#dbsupport=false #dbsupport=false
@ -128,7 +130,7 @@ do
ps -aux | grep -e xlxd -e xrfd -e ambed | grep -v grep ps -aux | grep -e xlxd -e xrfd -e ambed | grep -v grep
fi fi
echo echo
echo " Reflector Administration, Version #200715" echo " Reflector Administration, Version #200716"
echo echo
echo "ls : List the configuration file" echo "ls : List the configuration file"
echo "cl : Clean (remove) compiled objects and executables" echo "cl : Clean (remove) compiled objects and executables"

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

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

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

@ -34,19 +34,9 @@
class CYsfUtils class CYsfUtils
{ {
public: public:
// constructor
CYsfUtils() {};
// destructor
virtual ~CYsfUtils() {};
// operation // operation
static void DecodeVD2Vchs(uint8 *, uint8 **); static void DecodeVD2Vchs(uint8 *, uint8 **);
static void EncodeVD2Vch(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_KEEPALIVE_TIMEOUT (YSF_KEEPALIVE_PERIOD*10) // in seconds
#define YSF_DEFAULT_NODE_TX_FREQ 437000000 // in Hz #define YSF_DEFAULT_NODE_TX_FREQ 437000000 // in Hz
#define YSF_DEFAULT_NODE_RX_FREQ 437000000 // in Hz #define YSF_DEFAULT_NODE_RX_FREQ 437000000 // in Hz
#define YSF_AUTOLINK_ENABLE 0 // 1 = enable, 0 = disable auto-link // the following two defines are now in configure.h
#define YSF_AUTOLINK_MODULE 'B' // module for client to auto-link to // #define YSF_AUTOLINK_ENABLE 0 // 1 = enable, 0 = disable auto-link
// #define YSF_AUTOLINK_MODULE 'B' // module for client to auto-link to
#endif #endif
#ifndef NO_G3 #ifndef NO_G3

Loading…
Cancel
Save

Powered by TurnKey Linux.