correct bad module and tcmodule input

unstable
Tom Early 4 years ago
parent 2f71166611
commit af77a3dfe2

@ -14,6 +14,88 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
#!/bin/bash
CharCount () {
local haystack=$1
local test="\${haystack//[^$2]}"
eval local result=$test
return ${#result}
}
RemoveDupes () {
local -n s=$1
local i j
for (( i=0; i<${#s}-1; i++)); do
for (( j=$i+1; j<${#s}; j++)); do
if [[ ${s:$i:1} != "." ]]; then
if [[ ${s:$i:1} == ${s:$j:1} ]]; then
local l=$(($j + 1))
s="${s:0:$j}.${s:$l}"
fi
fi
done
done
s=${s//.}
}
CheckModules () {
# only A through Z
modules=${1//[^A-Z]}
if (( ${#modules} < 1 )); then
unset modules
clear
echo "ERROR: You must specify at least one module, A to Z!"
echo
read -p "<Enter> to continue: " ans
return
fi
RemoveDupes modules
tcmodules=${modules:0:1}
}
CheckTranscodedModules () {
local tc=${1//[^A-Z]}
local tcorig=$tc
if (( ${#tc} < 1 )); then
tcmodules=${modules:0:1}
clear
echo "ERROR: You must specify at least one module!"
echo "If you aren't using a transcoder, set the transcoder"
echo "address value to the default 'none'!"
echo
read -p "<Enter> to continue: " ans
return
fi
RemoveDupes tc
local m=$modules_d
if [ ! -z ${modules+x} ]; then
m=$modules
fi
local i
for ((i=0; i<${#tc}; i++)); do
CharCount $m ${tc:$i:1}
local count=$?
if (( $count < 1 )); then
local j=$((i+1))
tc="${tc:0:$i}.${tc:$j}"
fi
done
tc=${tc//.}
if (( ${#tc} < 1 )); then
echo "ERROR: Module(s), '$tcorig', are not in the configure modules, '$m'!"
echo
read -p "<Enter> to continue: " ans
tcmodules=${modules:0:1}
return
fi
tcmodules=$tc
}
SetBooleanValue () SetBooleanValue ()
{ {
@ -122,11 +204,7 @@ WriteSRCHFile ()
fi fi
if [ ! -z ${tcaddress+x} ]; then if [ ! -z ${tcaddress+x} ]; then
echo "#define TRANSCODER_IP \"${tcaddress}\"" >> $file echo "#define TRANSCODER_IP \"${tcaddress}\"" >> $file
if [ -z ${tcmodules+x} ]; then echo "#define TRANSCODED_MODULES \"${tcmodules}\"" >> $file
echo "#define TRANSCODED_MODULES \"${tcmodules_d}\"" >> $file
else
echo "#define TRANSCODED_MODULES \"${tcmodules}\"" >> $file
fi
fi fi
if [ -z ${g3support+x} ]; then if [ -z ${g3support+x} ]; then
m=${g3support_d} m=${g3support_d}
@ -291,7 +369,6 @@ modules_d='ABCF'
ip4addr_d='none' ip4addr_d='none'
ip6addr_d='none' ip6addr_d='none'
tcaddress_d='none' tcaddress_d='none'
tcmodules_d='ABC'
ysfautolink_d=false ysfautolink_d=false
ysfmodule_d='D' ysfmodule_d='D'
g3support_d=false g3support_d=false
@ -335,7 +412,7 @@ while [[ "$key" != q* ]]
do do
clear clear
echo echo
echo " Reflector Configuration, Version #211207" echo " Reflector Configuration, Version #211211"
echo echo
echo " ******* REFLECTOR ********" echo " ******* REFLECTOR ********"
echo -n "cs : Reflector Callsign = "; EvaluateVar callsign{,_d} echo -n "cs : Reflector Callsign = "; EvaluateVar callsign{,_d}
@ -377,11 +454,11 @@ do
callsign="${value^^}" callsign="${value^^}"
callsign="${callsign:0:6}" callsign="${callsign:0:6}"
unset tcaddress tcmodules ysf{autolink,module,localdb,dbname,dbuser,dbpw} unset tcaddress tcmodules ysf{autolink,module,localdb,dbname,dbuser,dbpw}
elif [[ "$key" == am* ]]; then modules="${value^^}" elif [[ "$key" == am* ]]; then CheckModules "${value^^}"
elif [[ "$key" == i4* ]]; then ip4addr="$value" elif [[ "$key" == i4* ]]; then ip4addr="$value"
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 CheckTranscodedModules "${value^^}"
elif [[ "$key" == ye* ]]; then SetBooleanValue ysfautolink "$value" elif [[ "$key" == ye* ]]; then SetBooleanValue ysfautolink "$value"
elif [[ "$key" == ym* ]]; then elif [[ "$key" == ym* ]]; then
ysfmodule="${value^^}" ysfmodule="${value^^}"
@ -402,7 +479,7 @@ do
elif [[ "$value" == i4* ]]; then unset ip4addr elif [[ "$value" == i4* ]]; then unset ip4addr
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 tcmodules=${modules:0:1}
elif [[ "$value" == ye* ]]; then unset ysfautolink ysfmodule elif [[ "$value" == ye* ]]; then unset ysfautolink ysfmodule
elif [[ "$value" == ym* ]]; then unset ysfmodule elif [[ "$value" == ym* ]]; then unset ysfmodule
elif [[ "$value" == g3* ]]; then unset g3support elif [[ "$value" == g3* ]]; then unset g3support

@ -47,10 +47,7 @@ CCodecStream::CCodecStream(CPacketStream *PacketStream, uint16_t streamid, ECode
CCodecStream::~CCodecStream() CCodecStream::~CCodecStream()
{ {
// close socket // kill the thread
//m_TCReader->Close();
// kill threads
keep_running = false; keep_running = false;
if ( m_Future.valid() ) if ( m_Future.valid() )
{ {

Loading…
Cancel
Save

Powered by TurnKey Linux.