diff --git a/plugins/modem/cisco-epc3010_ b/plugins/modem/cisco-epc3010_ index 58e7565f..d5f18c03 100755 --- a/plugins/modem/cisco-epc3010_ +++ b/plugins/modem/cisco-epc3010_ @@ -115,19 +115,21 @@ config) esac -# Location and name of tempfile to parse -FILENAME=$(mktemp /tmp/cisco_epc3010-XXXX.dump) || exit 1 +FILENAME=$(mktemp -q) && { + # Safe to use $FILENAME only within this block. Use quotes, + # since $TMPDIR, and thus $FILENAME, may contain whitespace. + + # Get statuspage from the modem + curl -s -o $FILENAME http://192.168.100.1/Docsis_system.asp -# Get statuspage from the modem -curl -s -o $FILENAME http://192.168.100.1/Docsis_system.asp - - -# Bash arrays starts on index 0, we 0-pad the first index. It makes it easier later on.. -SNR_ARRAY=( 0 $(awk -F'[<>]' '/ ch_snr/{print $3}' $FILENAME) ) -PWR_ARRAY=( 0 $(awk -F'[<>]' '/ ch_pwr/{print $3}' $FILENAME) ) -UP_PWR_ARRAY=( 0 $(awk -F'[<>]' '/ up_pwr/{print $3}' $FILENAME) ) + # Bash arrays starts on index 0, we 0-pad the first index. It makes it easier later on.. + SNR_ARRAY=( 0 $(awk -F'[<>]' '/ ch_snr/{print $3}' $FILENAME) ) + PWR_ARRAY=( 0 $(awk -F'[<>]' '/ ch_pwr/{print $3}' $FILENAME) ) + UP_PWR_ARRAY=( 0 $(awk -F'[<>]' '/ up_pwr/{print $3}' $FILENAME) ) + rm -f "$FILENAME" +} # @@ -138,7 +140,7 @@ if [ "$DIRECTION" == "downstream" ]; then total=${#PWR_ARRAY[*]} for (( index=1; index<$(( $total )); index++ )) do - printf "channel_%d_pwr.value %s\n" $index ${PWR_ARRAY[$index]} + printf "channel_%d_pwr.value %s\n" $index ${PWR_ARRAY[$index]} done total=${#SNR_ARRAY[*]} @@ -146,12 +148,10 @@ if [ "$DIRECTION" == "downstream" ]; then do printf "channel_%d_snr.value %s\n" $index ${SNR_ARRAY[$index]} done - exit 0 fi - # # Upstream info - Modem outputs Power Levels # @@ -160,15 +160,7 @@ if [ "$DIRECTION" == "upstream" ]; then total=${#UP_PWR_ARRAY[*]} for (( index=1; index<$(( $total )); index++ )) do - printf "channel_%d_pwr.value %s\n" $index ${UP_PWR_ARRAY[$index]} + printf "channel_%d_pwr.value %s\n" $index ${UP_PWR_ARRAY[$index]} done exit 0 fi - - -# -# Remove tempory file, used for parsing data -# -trap "rm -rf $FILENAME" EXIT - -