#!/bin/sh

if [ -z "$1" ] || [ -z "$2" ]; then
    echo "you need specified arguements"
    exit
fi    

TUN_IDX=$1
TUN_PID=$2
RESET_FILE="/var/run/l2tpc-reset-$TUN_IDX"
DONT_WANTYPE_UPDATE="/var/run/dont_update_wantype"
L2TP_RESULT_FILE=/var/run/l2tpc-result-$TUN_IDX

. /usr/bin/scriptlib
. /usr/bin/l2tpc-header

stop_l2tp_session()
{
    if [ -r $L2TP_RESULT_FILE ] ; then
        CFG=`cat $L2TP_RESULT_FILE`
        stt=0
        for i in $CFG
        do
            if [ $stt = 1 ] ; then
                TUNNEL_ID=$i
                stt=2
                continue	
            fi
        
            if [ $stt = 2 ] ; then
                LAC_ID=$i
                break	
            fi
        
            [ $i = "OK" ] && stt=1
        done

        logger -t "l2tpc" "Stop L2TP session $TUNNEL_ID $LAC_ID"
        l2tp-control "stop-session $TUNNEL_ID $LAC_ID" >/dev/null 2>&1
        #rm -f $L2TP_RESULT_FILE
    fi
    kill $TUN_PID > /dev/null 2>&1
}

main()
{
    touch $DONT_WANTYPE_UPDATE

    # Reset all IP Tables & Routing
    if [ -f $RESET_FILE ]; then
        (. $RESET_FILE)
        rm -f $RESET_FILE
    fi

    # Stop L2TP tunnel 
    stop_l2tp_session

    # Reset WebUI
    addr=`get_csid_addr $CSID_S_L2TP_CLI_PEER_PID $TUN_IDX`
    wrcsman "$addr 0"
    
    addr=`get_csid_addr $CSID_S_L2TP_CLI_PEER_IFNAME $TUN_IDX`
    wrcsman "$addr \""

    addr=`get_csid_addr $CSID_S_L2TP_CLI_PEER_VIRTUAL_IP $TUN_IDX`
    wrcsman "$addr {0.0.0.0}"

    addr=`get_csid_addr $CSID_S_L2TP_CLI_PEER_REMOTE_IP $TUN_IDX`
    wrcsman "$addr {0.0.0.0}"
    
    addr=`get_csid_addr $CSID_C_L2TP_CLI_CONNECT_TYPE $TUN_IDX`
    cnt_type=`rdcsman $addr u8`
    if [ $cnt_type -eq $L2TP_CNT_TYPE_ONDEMAND ]; then
        addr=`get_csid_addr $CSID_C_L2TP_CLI_USER_ENABLE $i`
        tun_enable=`rdcsman $addr u8`
        if [ $tun_enable -eq 1 ]; then 
            echo "L2TP tunnel $TUN_IDX starts on-demand... "
            l2tpc-ondemand start $TUN_IDX
        else
            echo "L2TP tunnel $TUN_IDX stop on-demand... "
            l2tpc-ondemand stop $TUN_IDX
        fi
    fi   
    rm -f $DONT_WANTYPE_UPDATE
}

#
# Main
#
main
