#!/usr/bin/perl -w
#-----------------------------------------------------------------------------#
#  Copyright (C) 2001 - 2002 Multi-Tech Systems Inc., USA
#  All Rights Reserved
#  Multi-Tech Systems, Inc., 2205, Woodale Dr, Mounds View MN USA
#-----------------------------------------------------------------------------#
#  ModName: Web GUI - Interface
#  Version: 3.23
#  Date: 2005-04-12
#  Modification History - Begin
#  Modification History - End

#Description: this script will delete all the masquerading rules and add them
#fresh (this will be called if the eth1 has been changed to any of the ppp
#interfaces)

sub getmask
{	
	my ($SubAddress,$SubMask) = @_;
	@MaskValues = split(/\./,$SubMask);
	$value = 0;
	for ($i = 0; $i < 4; $i++)
	{
		$quotient = $MaskValues[$i];
		while ($quotient != 0)
		{
			$rem = $quotient % 16;
			if ($rem == 15)
			{
				$value += 4;
			}
			elsif ($rem == 14)
			{
				$value += 3;
			}
			elsif ($rem == 12)
			{
				$value += 2;
			}
			elsif ($rem == 8)
			{
				$value += 1;
			}
			else
			{
				$value += 0;
			}
			$quotient = $quotient / 16;
		}
		if ($value % 8 != 0)
		{
			last;
		}
	}	
	return $value;
}
sub saverules
{
        open(IPTABLERULES,"/etc/multiconf/iptablerules");
        flock(IPTABLERULES,2);
        #system("iptables-save > /etc/multiconf/iptablerules");
	`/etc/multiconf/scripts/iptableop save`;
        close(IPTABLERULES);
}

`iptables -t nat -F AUTO_NAT_POST`;
open (MASQFILE, "/etc/multiconf/masq");
while (<MASQFILE>)
{
	@SplitValues = split (/ /,$_);
	$Net = $SplitValues[1];
	chomp ($Net);
	$If = $SplitValues[2];
	chomp ($If);
	@AddMask = `/etc/multiconf/scripts/netname $Net`;
	$Address = $AddMask[0];
	$Mask = $AddMask[1];
	chomp ($Address);
	chomp ($Mask);
	`/etc/multiconf/scripts/iptables addmasq $If $Address $Mask`;
}
close (MASQFILE);
saverules();
#system ("iptables-save >/etc/multiconf/iptablerules");
#20040413 Javeed update Intrusion
system("/etc/multiconf/scripts/CheckIntrusion update");
system ("sync");
