[Netpass-devel] NetPass/bin npsubagent.pl,1.1,1.2
Brought to you by:
jeffmurphy
|
From: Matt <mt...@us...> - 2005-05-26 22:38:36
|
Update of /cvsroot/netpass/NetPass/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15263 Modified Files: npsubagent.pl Log Message: Index: npsubagent.pl =================================================================== RCS file: /cvsroot/netpass/NetPass/bin/npsubagent.pl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- npsubagent.pl 26 May 2005 22:13:17 -0000 1.1 +++ npsubagent.pl 26 May 2005 22:38:24 -0000 1.2 @@ -16,6 +16,9 @@ my $mactable = {}; my $freeports = (); +# we are just starting clear all macs from ebtables +delAllMacs(); + $fh->open($PROCEBTNMAC) || die "Unable to open $PROCEBTNMAC"; my $maxports = $fh->getline; $fh->close(); @@ -51,6 +54,7 @@ delete $mactable->{$m}; # send linkdown trap here... + # might hafta introduce a timer here } foreach my $m (keys %$mactb) { @@ -70,6 +74,39 @@ $agent->shutdown(); exit 0; +sub delMac { + my $mac = shift; + + return -1 if ($mac !~ /\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}/); + my $cmd = sprintf("echo \"del %s\" > %s", $mac, $PROCEBTMAC); + + return system($cmd); +} + +sub addMac { + my $mac = shift; + + return -1 if ($mac !~ /\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}/); + my $cmd = sprintf("echo \"add %s\" > %s", $mac, $PROCEBTMAC); + + return system($cmd); +} + +sub delAllMacs { + my $fh = new FileHandle; + my @macs; + + $fh->open($PROCEBTMAC) || return -1; + @macs = $fh->getlines(); + $fh->close; + + foreach my $mac (@macs) { + delMac($mac); + } + + return 1; +} + sub getMacTable { my $fh = new FileHandle; my %mtable; |