#!/bin/sh
#This script is created by ssparser automatically. The parser first created by MaoShouyan
printf "Content-type: text/html
Cache-Control: no-cache

"
echo -n "";
. ../common/common.sh 
. ${PGETC}/ifadmin.conf
myself=/cgi-bin/Setup/`basename $0`

echo -n "
<script type=\"text/javascript\" src=\"/img/common.js\"></script>
<script languate=javascript>
function beforeConfig(frm)
{
	var ifaddr = document.getElementsByName(\"ipaddr\")[0];
	var ifmask = document.getElementsByName(\"netmask\")[0];
	var ifgw   = document.getElementsByName(\"gateway\")[0];
	ifaddr.value = TrimAll(ifaddr.value);
	ifmask.value = TrimAll(ifmask.value);
	ifgw.value   = TrimAll(ifgw.value);
	if (!IsIPAddr(ifaddr.value)) {
		alert(\"ȷIPַ!\");
		return false;
	}
	if (!IsNetmask(ifmask.value)) {
		alert(\"ȷ!\");
		return false;
	}
	
	if (ifgw.value != \"\" && !IsIPAddr(ifgw.value)) {
		alert(\"ȷصַ!\");
		return false;
	}
	
	return true;
}
</script>
";
if [ "${REQUEST_METHOD}" = "POST" ]; then
	if [ "${CGI_ipaddr}" != "${ADMIN_IP}" -o \
	     "${CGI_netmask}" != "{ADMIN_MASK}" -o \
	     "${CGI_gateway}" != "${GATEWAY}" ]; then
		echo "ADMIN_IP=${CGI_ipaddr}
ADMIN_MASK=${CGI_netmask}
GATEWAY=${CGI_gateway}" > ${PGETC}/ifadmin.conf
	fi
		
	if [ "${CGI_ipaddr}" != "${ADMIN_IP}" -o \
	     "${CGI_netmask}" != "${ADMIN_MASK}" ]; then
		ifconfig ${ADMIN_PORT} ${CGI_ipaddr} netmask ${CGI_netmask} 2>/dev/null
	fi
		
	errmsg=`route delete default 2>/dev/null`
	if [ "${CGI_gateway}" != "" ]; then
		errmsg=`route add default ${CGI_gateway} 2>/dev/null`
	fi
	# NAT module
	if [ "${MAIN_RTPORT}" != "" ]; then
		if [ "${CGI_ipaddr}" != "${ADMIN_IP}" -o \
		     "${CGI_netmask}" != "${ADMIN_MASK}" ]; then
			bitnum=`${FLOWEYE} util bitnum ${CGI_netmask}`
			network=`${FLOWEYE} util network ${CGI_ipaddr} ${CGI_netmask}`
			cmdstr="nat pass on ${MAIN_RTPORT} from ${network}/${bitnum} to any -> (${MAIN_RTPORT})"
        		echo "${cmdstr}" | ${PGBIN}/pfctl -a natrule/${MAIN_RTPORT} -f-
			if [ "${BACK_RTPORT}" != "" ]; then
				cmdstr="nat pass on ${BACK_RTPORT} from ${network}/${bitnum} to any -> (${BACK_RTPORT})"
        			echo "${cmdstr}" | ${PGBIN}/pfctl -a natrule/${BACK_RTPORT} -f-
			fi
		fi
	fi
		
	. ${PGETC}/ifadmin.conf
	afm_dialog_msg "ɹ!"
fi

echo -n "
<body>
"; 
if [ "${MAIN_RTPORT}" = "" ]; then
	cgi_show_title "->ӿ" 
else
	cgi_show_title "·ɽӿ->"
fi

echo -n "
<br>
<form method=post onsubmit=\"return Validate(this)\" action=\"${myself}\">
<table style=\"font:14px\" width=600 border=0 cellspacing=0 cellpadding=3 bgcolor=\"#ffffff\">
<tr id=row1>            
        <td width=40></td>
        <td width=120 align=left>ӿ</td>
        <td width=200 align=left>${ADMIN_PORT}</td>
	<td width=*></td>
</tr>
<tr id=row1>            
        <td ></td>
        <td align=left>IPַ</td>
        <td align=left>
                <input type=text name=ipaddr style=\"width:120px\" value=\"${ADMIN_IP}\"></input>
        </td>
	<td width=*></td>
</tr>
<tr id=row1>
        <td></td>
        <td align=left></td>
        <td align=left>
                <input type=text name=netmask style=\"width:120px\" value=\"${ADMIN_MASK}\"></input>
	</td>
	<td width=*></td>
</tr>
<tr id=row1>            
        <td></td>
        <td align=left>Ĭ</td>
        <td align=left>
                <input type=text name=gateway style=\"width:120px\" value=\"${GATEWAY}\"></input>
        </td>
       	<td width=* align=left></td>
</tr>
</table>
<table style=\"width:600; border-bottom:1px #787882 solid; color:#0000ff\">
<tr><td align=right>&nbsp;</td></tr>
</table>
<table style=\"width:600\">
<tr>
        <td align=right>
                <input type=submit style=\"width:80\" value=\"ύ\"></input>
        </td>
</tr>
</table>
</form>
</body>
</html>
";