mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-27 19:23:24 +02:00
connections.cgi: Parse conntrack table without loading it all first
We used to load the entire table into memory which is very unnecessary because we can parse it one line at a time. Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
@@ -44,11 +44,6 @@ my @colour=();
|
||||
my %netsettings=();
|
||||
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
|
||||
|
||||
# Read and sort the connection tracking table
|
||||
open(CONNTRACK, "/usr/local/bin/getconntracktable | sort -k 5,5 --numeric-sort --reverse |") or die "Unable to read conntrack table";
|
||||
my @conntrack = <CONNTRACK>;
|
||||
close(CONNTRACK);
|
||||
|
||||
# Collect data for the @network array.
|
||||
|
||||
# Add Firewall Localhost 127.0.0.1
|
||||
@@ -363,7 +358,11 @@ print <<END;
|
||||
</tr>
|
||||
END
|
||||
|
||||
foreach my $line (@conntrack) {
|
||||
# Read and sort the connection tracking table
|
||||
open(CONNTRACK, "/usr/local/bin/getconntracktable | sort -k 5,5 --numeric-sort --reverse |")
|
||||
or die "Unable to read conntrack table";
|
||||
|
||||
foreach my $line (<CONNTRACK>) {
|
||||
my @conn = split(' ', $line);
|
||||
|
||||
# The first bit is the l3 protocol.
|
||||
@@ -572,6 +571,8 @@ foreach my $line (@conntrack) {
|
||||
END
|
||||
}
|
||||
|
||||
close(CONNTRACK);
|
||||
|
||||
# Close the main table.
|
||||
print "</table>";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user