#!/bin/sh
. /www/cgi-bin/functions.sh
lock_cgiwait
#totalnum=$(ls /tmp/configs/static_router* | wc -l)
totalnum=`nvram show | grep ^static_router | wc -l`
select_editnum=$($nvram get router_eidtnum)
info_get_wanproto=$($nvram get wan_proto)
info_get_wanip="0.0.0.0"
info_get_wanmask="0.0.0.0"
wan_hwifname=$($nvram get wan_hwifname)
if [ "$info_get_wanproto" = "dhcp" ];then
info_get_wanip=$($nvram get wan_dhcp_ipaddr)
info_get_wanmask=$($nvram get wan_dhcp_netmask)
elif [ "$info_get_wanproto" = "static" ];then
info_get_wanip=$($nvram get wan_ipaddr)
info_get_wanmask=$($nvram get wan_netmask)
elif [ "$info_get_wanproto" = "bigpond" ];then
info_get_wanip=$($nvram get wan_dhcp_ipaddr)
info_get_wanmask=$($nvram get wan_dhcp_netmask)
elif [ "$info_get_wanproto" = "pptp" ];then
pptp_status=/tmp/ppp/ppp0-status
pptp_get_wan_assign=$($nvram get wan_pptp_wan_assign)
pptp_alive=0
if [ -f $pptp_status ]; then
status=$(cat $pptp_status)
if [ "x$status" = "x1" ]; then
pptp_alive=1
fi
fi
eth1_value=`ifconfig | grep ^$wan_hwifname`
if [ "x$eth1_value" != "x" ];then
pptp_eth1_wanip=`ifconfig $wan_hwifname | sed 2p -n | awk '/inet/{print $2}' | awk -F: '{print $2}'`
pptp_eth1_wanmask=`ifconfig $wan_hwifname | sed 2p -n | awk '/inet/{print $4}' | awk -F: '{print $2}'`
else
pptp_eth1_wanip="0.0.0.0"
pptp_eth1_wanmask="0.0.0.0"
fi
if [ "$pptp_alive" = "1" ];then
ppp0_value=`ifconfig | grep ^ppp0`
if [ "x$ppp0_value" != "x" ];then
info_get_wanip=`ifconfig ppp0 | sed 2p -n | awk '/inet/{print $2}' | awk -F: '{print $2}'`
info_get_wanmask="255.255.255.255"
elif [ "$pptp_get_wan_assign" = "0" ];then
info_get_wanip="0.0.0.0"
info_get_wanmask="0.0.0.0"
else
info_get_wanip=$($nvram get wan_pptp_local_ip)
info_get_wanmask="0.0.0.0"
fi
else
info_get_wanip="0.0.0.0"
info_get_wanmask="0.0.0.0"
fi
elif [ "$info_get_wanproto" = "pppoe" ];then
pppoe_status=/tmp/ppp/ppp0-status
pppoe_get_wan_assign=$($nvram get wan_pppoe_wan_assign)
pppoe_alive=0
pppoe_eth1_wanmask="0.0.0.0"
if [ "$pppoe_netmask" != "0.0.0.0" ] && [ "$pppoe_netmask" != "..." ]; then
dyn_pppoe=1
fi
if [ -f $pppoe_status ]; then
status=$(cat $pppoe_status)
if [ "x$status" = "x1" ]; then
pppoe_alive=1
fi
fi
if [ "$dyn_pppoe" = "1" ]; then
eth1_value=`ifconfig | grep ^$wan_hwifname`
if [ "x$eth1_value" != "x" ];then
pppoe_eth1_wanip=`ifconfig $wan_hwifname | sed 2p -n | awk '/inet/{print $2}' | awk -F: '{print $2}'`
pppoe_eth1_wanmask=`ifconfig $wan_hwifname | sed 2p -n | awk '/inet/{print $4}' | awk -F: '{print $2}'`
fi
fi
if [ "$pppoe_alive" = "1" ];then
ppp0_value=`ifconfig | grep ^ppp0`
if [ "x$ppp0_value" != "x" ];then
info_get_wanip=`ifconfig ppp0 | sed 2p -n | awk '/inet/{print $2}' | awk -F: '{print $2}'`
info_get_wanmask="255.255.255.255"
elif [ "$pppoe_get_wan_assign" = "0" ];then
info_get_wanip="0.0.0.0"
info_get_wanmask="0.0.0.0"
else
info_get_wanip=$($nvram get wan_pppoe_ip)
info_get_wanmask="255.255.255.255"
fi
elif [ "$pppoe_get_wan_assign" = "1" ];then
info_get_wanip=$($nvram get wan_pppoe_ip)
info_get_wanmask="255.255.255.255"
else
info_get_wanip="0.0.0.0"
info_get_wanmask="0.0.0.0"
fi
fi
info_get_lanip=$($nvram get lan_ipaddr)
info_get_lanmask=$($nvram get lan_netmask)
print_cgi_header
print_http_header "/funcs.js" "/str_router.js"
print_body_header "_STR_routes" "STR_router.html" "st_router_edit"
print_table_header ""
echo ""
cat <
var totalnum=$totalnum;
var select_editnum=$select_editnum;
function loadvalue()
{
var routerArray=routerArray$select_editnum;
var cf=document.forms[0];
if(totalnum!=0)
{
var each_info=routerArray.split(' ');
cf.route_name.value=each_info[0].replace(/↔/g," ");;
var private=each_info[1];
if( private == 1)
cf.SRoutePrivate.checked = true;
else
cf.SRoutePrivate.checked = false;
var active=each_info[2];
if( active == 1)
cf.SRouteActive.checked = true;
else
cf.SRouteActive.checked = false;
var dest_array=each_info[3].split('.');
cf.dest_ip1.value=dest_array[0];
cf.dest_ip2.value=dest_array[1];
cf.dest_ip3.value=dest_array[2];
cf.dest_ip4.value=dest_array[3];
var mask_array=each_info[4].split('.');
cf.mask1.value=mask_array[0];
cf.mask2.value=mask_array[1];
cf.mask3.value=mask_array[2];
cf.mask4.value=mask_array[3];
var gtw_array=each_info[5].split('.');
cf.gtw_ip1.value=gtw_array[0];
cf.gtw_ip2.value=gtw_array[1];
cf.gtw_ip3.value=gtw_array[2];
cf.gtw_ip4.value=gtw_array[3];
cf.route_metric.value=each_info[6];
}
}
var wan_proto="$info_get_wanproto";
if ( wan_proto == "pptp" )
{
var pptp_eth1_wanip="$pptp_eth1_wanip";
var pptp_eth1_wanmask="$pptp_eth1_wanmask";
}
var dyn_pppoe="$dyn_pppoe";
if ( wan_proto == 'pppoe' && dyn_pppoe == 1)
{
var pppoe_eth1_wanip="$pppoe_eth1_wanip";
var pppoe_eth1_wanmask="$pppoe_eth1_wanmask";
}
if ( "$info_get_wanip" == "")
{
var wan_ip="0.0.0.0"
var wan_mask="0.0.0.0"
}
else
{
var wan_ip="$info_get_wanip";
var wan_mask="$info_get_wanmask";
}
if( "$info_get_lanip" == "" )
{
var lan_ip="0.0.0.0";
var lan_mask="0.0.0.0";
}
else
{
var lan_ip="$info_get_lanip"
var lan_mask="$info_get_lanmask"
}
.
.
.
.
.
.
.
.
.
EOF
print_http_footer