traffic.cgi: Do not use hard-coded red interface name

Message ID 20230307115349.5739-1-stefan.schantl@ipfire.org
State Accepted
Commit 44ea49fa75f097b21c947d0a9b4438d3cdd4d967
Headers
Series traffic.cgi: Do not use hard-coded red interface name |

Commit Message

Stefan Schantl March 7, 2023, 11:53 a.m. UTC
  If QMI is used the dial in mode has to be set as ppp dialin but the
interface name is red. In such a case the old code tried to display
the stats for the ppp0 interface which is wrong.

This patch fixes this issue by calling the handy function to get
the correct interface name for red.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
 html/cgi-bin/traffic.cgi | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
  

Comments

Peter Müller March 11, 2023, 4:29 p.m. UTC | #1
Good catch, thank you!

Acked-by: Peter Müller <peter.mueller@ipfire.org>

> If QMI is used the dial in mode has to be set as ppp dialin but the
> interface name is red. In such a case the old code tried to display
> the stats for the ppp0 interface which is wrong.
> 
> This patch fixes this issue by calling the handy function to get
> the correct interface name for red.
> 
> Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
> ---
>  html/cgi-bin/traffic.cgi | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/html/cgi-bin/traffic.cgi b/html/cgi-bin/traffic.cgi
> index 2f28537d0..67cea7c2e 100644
> --- a/html/cgi-bin/traffic.cgi
> +++ b/html/cgi-bin/traffic.cgi
> @@ -55,12 +55,12 @@ display_vnstat($netsettings{'GREEN_DEV'});
>  
>  # Display external network / check if it is PPP or ETH
>  # and dont display if RED_DEV=GREEN_DEV (green only mode)
> -if ($netsettings{'RED_TYPE'} ne 'PPPOE') {
> -    if ($netsettings{'RED_DEV'} ne $netsettings{'GREEN_DEV'}) {
> -	display_vnstat($netsettings{'RED_DEV'});
> -    }
> -} else {
> -    display_vnstat("ppp0");
> +if ($netsettings{'RED_DEV'} ne $netsettings{'GREEN_DEV'}) {
> +	# Omit the red interface name.
> +	my $red_iface = &General::get_red_interface();
> +
> +	# Display the red stats if a device could be grabbed.
> +	display_vnstat($red_iface) if ($red_iface);
>  }
>  
>  # Check config and display aditional Networks (BLUE and ORANGE)
  

Patch

diff --git a/html/cgi-bin/traffic.cgi b/html/cgi-bin/traffic.cgi
index 2f28537d0..67cea7c2e 100644
--- a/html/cgi-bin/traffic.cgi
+++ b/html/cgi-bin/traffic.cgi
@@ -55,12 +55,12 @@  display_vnstat($netsettings{'GREEN_DEV'});
 
 # Display external network / check if it is PPP or ETH
 # and dont display if RED_DEV=GREEN_DEV (green only mode)
-if ($netsettings{'RED_TYPE'} ne 'PPPOE') {
-    if ($netsettings{'RED_DEV'} ne $netsettings{'GREEN_DEV'}) {
-	display_vnstat($netsettings{'RED_DEV'});
-    }
-} else {
-    display_vnstat("ppp0");
+if ($netsettings{'RED_DEV'} ne $netsettings{'GREEN_DEV'}) {
+	# Omit the red interface name.
+	my $red_iface = &General::get_red_interface();
+
+	# Display the red stats if a device could be grabbed.
+	display_vnstat($red_iface) if ($red_iface);
 }
 
 # Check config and display aditional Networks (BLUE and ORANGE)