#!/bin/sh /etc/rc.common
START=75
STOP=10
CONFIGFILE="/tmp/ser2net.conf"

start() {
	pidof ser2net | awk '{print $2}' > /tmp/ser2net
	PID=$(cat /tmp/ser2net)
	rm /tmp/ser2net
    if [ ! $PID ]; then
		update_configfile
        ser2net -c "$CONFIGFILE"

    else
        echo "Ser2Net: is already running"
    fi
}

stop() {
	pidof ser2net | sed -e "s/$$//g" > /tmp/ser2net_pid
	PID=`cat /tmp/ser2net_pid`
	rm -f /tmp/se2net_pid
	kill -9 $PID 	
}


update_configfile() {
	echo "Ser2Net: Generating "$CONFIGFILE" based on /etc/config/ser2net (in cbi format)."
	echo "#This file is generated based on /etc/config/ser2net." > "$CONFIGFILE"
	i=0
	while [ true ]
	do
	        tcpport=`uci get ser2net.@proxy["$i"].tcpport 2> /dev/null`
	        if [ -z $tcpport ]; then
	                break
	        fi
	        state=`uci get ser2net.@proxy["$i"].state 2> /dev/null`
	        timeout=`uci get ser2net.@proxy["$i"].timeout 2> /dev/null`
	        device=`uci get ser2net.@proxy["$i"].device 2> /dev/null`
	        baudrate=`uci get ser2net.@proxy["$i"].baudrate 2> /dev/null`
	        parity_check=`uci get ser2net.@proxy["$i"].parity_check 2> /dev/null`
	        stopbit=`uci get ser2net.@proxy["$i"].stopbit 2> /dev/null`
	        databit=`uci get ser2net.@proxy["$i"].databit 2> /dev/null`

		echo "$tcpport":"$state":"$timeout":"$device":"$baudrate $parity_check $stopbit $databit" >> "$CONFIGFILE"

	        let i++
	done
	echo "Ser2Net: File "$CONFIGFILE" is now updated, restart ser2net service for changes to take affect."
}
