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;
|