From 60d90975114bff2c351161ae138b563aa750d38c Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 27 Apr 2024 13:43:49 +0200 Subject: [PATCH] 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 --- html/cgi-bin/connections.cgi | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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 ""; -- 2.39.5