From: Michael Tremer Date: Sat, 27 Apr 2024 11:43:49 +0000 (+0200) Subject: connections.cgi: Parse conntrack table without loading it all first X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=60d90975114bff2c351161ae138b563aa750d38c;p=people%2Fmfischer%2Fipfire-2.x.git 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 --- diff --git a/html/cgi-bin/connections.cgi b/html/cgi-bin/connections.cgi index 97761eb20..ad7c69beb 100644 --- a/html/cgi-bin/connections.cgi +++ b/html/cgi-bin/connections.cgi @@ -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 = ; -close(CONNTRACK); - # Collect data for the @network array. # Add Firewall Localhost 127.0.0.1 @@ -363,7 +358,11 @@ print < 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 () { 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 "";