From patchwork Mon Jun 23 17:16:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 8850 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4bQvs61HMtz3wnY for ; Mon, 23 Jun 2025 17:17:14 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "E5" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvs245LWz7BK for ; Mon, 23 Jun 2025 17:17:10 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4bQvs04DWzz34bJ for ; Mon, 23 Jun 2025 17:17:08 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4bQvrx4P9Bz34CH for ; Mon, 23 Jun 2025 17:17:05 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "michael.haj.ipfire.org", Issuer "E6" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvrw35wcz1dt; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4bQvrw1w0xzTgRf; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: dietzmann@brecht-schule.hamburg, Michael Tremer Subject: [PATCH 1/5] fwhosts.cgi: Show in which firewall rule objects are being used Date: Mon, 23 Jun 2025 17:16:54 +0000 Message-Id: <20250623171658.530138-1-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.39.5 Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 From: Peer Dietzmann Signed-off-by: Michael Tremer Tested-by: Adolf Belka --- doc/language_issues.en | 1 + doc/language_issues.es | 1 + doc/language_issues.fr | 1 + doc/language_issues.it | 1 + doc/language_issues.nl | 1 + doc/language_issues.pl | 1 + doc/language_issues.ru | 1 + doc/language_issues.tr | 1 + doc/language_missings | 7 + html/cgi-bin/fwhosts.cgi | 368 +++++++++++++++++++++++++++++++++++++-- langs/de/cgi-bin/de.pl | 1 + langs/en/cgi-bin/en.pl | 1 + 12 files changed, 375 insertions(+), 10 deletions(-) diff --git a/doc/language_issues.en b/doc/language_issues.en index 996572456..7d72fa99b 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -78,6 +78,7 @@ WARNING: untranslated string: TOS rule = TOS rule WARNING: untranslated string: The class number does not match the specified interface. = The class number does not match the specified interface. WARNING: untranslated string: The destination IP address is invalid. = The destination IP address is invalid. WARNING: untranslated string: The source IP address is invalid. = The source IP address is invalid. +WARNING: untranslated string: Unused = Unused WARNING: untranslated string: WakeOnLan = Wake On Lan WARNING: untranslated string: a ca certificate with this name already exists = A CA certificate with this name already exists. WARNING: untranslated string: a connection with this common name already exists = A connection with this common name already exists. diff --git a/doc/language_issues.es b/doc/language_issues.es index 68836302a..e90acf9d9 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -980,6 +980,7 @@ WARNING: translation string unused: zoneconf val vlan tag range error WARNING: translation string unused: zoneconf val zoneslave amount error WARNING: untranslated string: Captive ACTIVATE = unknown string WARNING: untranslated string: Captive clients = unknown string +WARNING: untranslated string: Unused = Unused WARNING: untranslated string: ca name must only contain characters and spaces = unknown string WARNING: untranslated string: dns servers = DNS Servers WARNING: untranslated string: enable disable client = unknown string diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 80341a1c3..db91be7fe 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -959,6 +959,7 @@ WARNING: translation string unused: zoneconf val vlan amount assignment error WARNING: translation string unused: zoneconf val vlan tag assignment error WARNING: translation string unused: zoneconf val vlan tag range error WARNING: translation string unused: zoneconf val zoneslave amount error +WARNING: untranslated string: Unused = Unused WARNING: untranslated string: allowed subnets = Allowed Subnets WARNING: untranslated string: bypassed = Bypassed WARNING: untranslated string: ca name must only contain characters and spaces = unknown string diff --git a/doc/language_issues.it b/doc/language_issues.it index 4ec3545ba..facb0c256 100644 --- a/doc/language_issues.it +++ b/doc/language_issues.it @@ -932,6 +932,7 @@ WARNING: untranslated string: Captive vouchervalid = Allowed time for this coupo WARNING: untranslated string: Captive wrong type = Uploaded file has wrong filetype WARNING: untranslated string: MTU settings = MTU settings: WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart +WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_issues.nl b/doc/language_issues.nl index 56c6dadf6..40710c698 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -932,6 +932,7 @@ WARNING: untranslated string: Captive vouchervalid = Allowed time for this coupo WARNING: untranslated string: Captive wrong type = Uploaded file has wrong filetype WARNING: untranslated string: MTU settings = MTU settings: WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart +WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_issues.pl b/doc/language_issues.pl index 6ccb0a497..ef464100c 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -848,6 +848,7 @@ WARNING: untranslated string: MB read = MB read WARNING: untranslated string: MB written = MB written WARNING: untranslated string: MTU settings = MTU settings: WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart +WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_issues.ru b/doc/language_issues.ru index 8a689daa7..d4f669b1b 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -843,6 +843,7 @@ WARNING: untranslated string: MB read = MB read WARNING: untranslated string: MB written = MB written WARNING: untranslated string: MTU settings = MTU settings: WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart +WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_issues.tr b/doc/language_issues.tr index e79fe1388..f557f9a04 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -925,6 +925,7 @@ WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Captive clients = unknown string WARNING: untranslated string: Captive delete logo = Delete Logo +WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_missings b/doc/language_missings index cd005f45a..8487c8a26 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -128,6 +128,7 @@ < dns servers < ids provider eol < online +< Unused ############################################################################ # Checking cgi-bin translations for language: fr # ############################################################################ @@ -181,6 +182,7 @@ < system time < timeformat < total +< Unused < upload fcdsl.o < warning < wg @@ -720,6 +722,7 @@ < unblock all < uncheck all < unlimited +< Unused < update ruleset < updxlrtr passive mode < uplink bit rate @@ -1356,6 +1359,7 @@ < unblock all < uncheck all < unlimited +< Unused < update ruleset < updxlrtr passive mode < uplink bit rate @@ -2398,6 +2402,7 @@ < unblock all < uncheck all < unlimited +< Unused < update ruleset < updxlrtr passive mode < updxlrtr sources @@ -3486,6 +3491,7 @@ < unblock all < uncheck all < unlimited +< Unused < update ruleset < updxlrtr passive mode < updxlrtr sources @@ -3975,6 +3981,7 @@ < traffic stat title < transfers < transport mode does not support vti +< Unused < update ruleset < updxlrtr passive mode < user management diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi index e92ef6853..6b4e22159 100644 --- a/html/cgi-bin/fwhosts.cgi +++ b/html/cgi-bin/fwhosts.cgi @@ -1932,7 +1932,7 @@ sub viewtablenet }else{ print< - $Lang::tr{'name'}$Lang::tr{'fwhost netaddress'}$Lang::tr{'remark'}$Lang::tr{'used'} + $Lang::tr{'name'}$Lang::tr{'fwhost netaddress'}$Lang::tr{'remark'}$Lang::tr{'used'} END } my $count=0; @@ -1952,7 +1952,14 @@ END } my $colnet="$customnetwork{$key}[1]/".&General::subtocidr($customnetwork{$key}[2]); my $netcount=&getnetcount($customnetwork{$key}[0]); - print"
$customnetwork{$key}[0]".&getcolor($colnet)."$customnetwork{$key}[3]$netcount x"; + my $netusedin=&getusedin($customnetwork{$key}[0]); + my $htmlparttouse=""; + if ($netusedin) { + $htmlparttouse = ""; + } else { + $htmlparttouse = ""; + } + print"$customnetwork{$key}[0]".&getcolor($colnet)."$customnetwork{$key}[3]$netcount x$htmlparttouse"; print< @@ -2086,7 +2093,7 @@ sub viewtablehost }else{ print< - $Lang::tr{'name'}$Lang::tr{'fwhost ip_mac'}$Lang::tr{'remark'}$Lang::tr{'used'} + $Lang::tr{'name'}$Lang::tr{'fwhost ip_mac'}$Lang::tr{'remark'}$Lang::tr{'used'} END } my $count=0; @@ -2106,7 +2113,14 @@ END $customhost{$key}[4]=~s/\s+//g; my $hostcount=0; $hostcount=&gethostcount($customhost{$key}[0]); - print"$customhost{$key}[0]".&getcolor($ip)."$customhost{$key}[3]$hostcount x"; + my $hostusedin=&getusedin($customhost{$key}[0]); + my $htmlparttouse=""; + if ($hostusedin) { + $htmlparttouse = ""; + } else { + $htmlparttouse = ""; + } + print"$customhost{$key}[0]".&getcolor($ip)."$customhost{$key}[3]$hostcount x$htmlparttouse"; print< @@ -2182,7 +2196,13 @@ sub viewtablegrp print "
$grpname   "; print " $Lang::tr{'remark'}:  $remark   " if ($remark ne ''); my $netgrpcount=&getnetcount($grpname); - print "$Lang::tr{'used'}: $netgrpcount x"; + print "$Lang::tr{'used'}: $netgrpcount x "; + my $groupusedin=&getusedin($grpname); + if ($groupusedin) { + print ""; + } else { + print ""; + } if($netgrpcount == '0') { print""; @@ -2320,8 +2340,13 @@ sub viewtablelocationgrp # Get group count. my $locationgrpcount=&getlocationcount($grpname); - print "$Lang::tr{'used'}: $locationgrpcount x"; - + my $locationusedin=&getlocusedin($grpname); + print "$Lang::tr{'used'}: $locationgrpcount x "; + if ($locationusedin) { + print ""; + } else { + print ""; + } # Only display delete icon, if the group is not used by a firewall rule. if($locationgrpcount == '0') { print"
\n"; @@ -2442,7 +2467,7 @@ sub viewtableservice &General::readhasharray("$fwconfigout", \%fwout); print< - $Lang::tr{'fwhost srv_name'}$Lang::tr{'fwhost prot'}$Lang::tr{'fwhost port'}ICMP$Lang::tr{'fwhost used'} + $Lang::tr{'fwhost srv_name'}$Lang::tr{'fwhost prot'}$Lang::tr{'fwhost port'}ICMP$Lang::tr{'fwhost used'} END my $col=''; foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0])} keys %customservice) @@ -2463,10 +2488,17 @@ END END #Neuer count $srvcount=&getsrvcount($customservice{$key}[0]); + my $serviceusedin=&getsrvusedin($customservice{$key}[0]); + my $htmlparttouse=""; + if ($serviceusedin) { + $htmlparttouse=""; + } else { + $htmlparttouse=""; + } if($customservice{$key}[3] eq 'All ICMP-Types'){print $Lang::tr{'fwdfw all icmp'};} elsif($customservice{$key}[3] ne 'BLANK'){print $customservice{$key}[3];} print<$srvcount x + $srvcount x$htmlparttouse @@ -2538,7 +2570,13 @@ sub viewtableservicegrp if($count >0){print"";$count=1;} print "
$grpname    "; print "$Lang::tr{'remark'}:  $remark " if ($remark ne ''); - print "  $Lang::tr{'used'}: $grpcount x"; + print "  $Lang::tr{'used'}: $grpcount x "; + my $srvgrpusedin=&getsrvusedin($customservicegrp{$key}[0]); + if ($srvgrpusedin) { + print ""; + } else { + print ""; + } if($grpcount == '0') { print""; @@ -2811,6 +2849,106 @@ sub getlocationcount } return $counter; } +sub getlocusedin +{ + my $groupname=shift; + my $titletext=""; + + # Location groups are stored as "group:groupname" in the + # firewall settings files. + my $searchstring = join(':', "group",$groupname); + + #Count services used in firewall - config + my $fwfwtext=""; + # first set title if found + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[4] eq $searchstring){ + $fwfwtext = "$Lang::tr{'firewall rules'}:"; + } + if($fwfwd{$key1}[6] eq $searchstring){ + $fwfwtext = "$Lang::tr{'firewall rules'}:"; + } + } + # then add rule numbers + my @fwfwrules = (); + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[4] eq $searchstring){ + push(@fwfwrules, $key1); + } + if($fwfwd{$key1}[6] eq $searchstring){ + push(@fwfwrules, $key1); + } + } + my @fwfwarraysorted = sort { $a <=> $b } @fwfwrules; + foreach my $rule (@fwfwarraysorted) + { + $fwfwtext .= " - $rule"; + } + #Count services used in firewall - input + my $fwintext=""; + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[4] eq $searchstring){ + $fwintext = "$Lang::tr{'incoming firewall access'}:"; + } + if($fwinp{$key2}[6] eq $searchstring){ + $fwintext = "$Lang::tr{'incoming firewall access'}:"; + } + } + my @fwinrules = (); + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[4] eq $searchstring){ + push(@fwinrules, $key2); + } + if($fwinp{$key2}[6] eq $searchstring){ + push(@fwinrules, $key2); + } + } + my @fwinarraysorted = sort { $a <=> $b } @fwinrules; + foreach my $rule (@fwinarraysorted) + { + $fwintext .= " - $rule"; + } + #Count services used in firewall - outgoing + my $fwouttext=""; + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[4] eq $searchstring){ + $fwouttext = "$Lang::tr{'outgoing firewall access'}:"; + } + if($fwout{$key3}[6] eq $searchstring){ + $fwouttext = "$Lang::tr{'outgoing firewall access'}:"; + } + } + my @fwoutrules = (); + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[4] eq $searchstring){ + push(@fwoutrules, $key3); + } + if($fwout{$key3}[6] eq $searchstring){ + push(@fwoutrules, $key3); + } + } + my @fwoutarraysorted = sort { $a <=> $b } @fwoutrules; + foreach my $rule (@fwoutarraysorted) + { + $fwouttext .= " - $rule"; + } + if ($fwfwtext) { + $titletext .= "$fwfwtext" + } + if ($fwintext) { + if ($titletext) { + $titletext .= " " + } + $titletext .= "$fwintext" + } + if ($fwouttext) { + if ($titletext) { + $titletext .= " " + } + $titletext .= "$fwouttext" + } + return $titletext; +} sub getnetcount { my $searchstring=shift; @@ -2850,6 +2988,122 @@ sub getnetcount } return $srvcounter; } +sub getusedin +{ + my $searchstring=shift; + my $titletext=""; + my $groups=(); + my $rules=(); + + #Count services used in Network/Host group + my $servicegrouptext=""; + foreach my $key (keys %customgrp) { + if($customgrp{$key}[2] eq $searchstring){ + $servicegrouptext = "$Lang::tr{'fwhost cust grp'}:"; + } + } + foreach my $key (keys %customgrp) { + if($customgrp{$key}[2] eq $searchstring){ + $servicegrouptext .= " - $customgrp{$key}[0]"; + } + } + #Count services used in firewall - config + my $fwfwtext=""; + # first set title if found + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[4] eq $searchstring){ + $fwfwtext = "$Lang::tr{'firewall rules'}:"; + } + if($fwfwd{$key1}[6] eq $searchstring){ + $fwfwtext = "$Lang::tr{'firewall rules'}:"; + } + } + # then add rule numbers + my @fwfwrules = (); + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[4] eq $searchstring){ + push(@fwfwrules, $key1); + } + if($fwfwd{$key1}[6] eq $searchstring){ + push(@fwfwrules, $key1); + } + } + my @fwfwarraysorted = sort { $a <=> $b } @fwfwrules; + foreach my $rule (@fwfwarraysorted) + { + $fwfwtext .= " - $rule"; + } + #Count services used in firewall - input + my $fwintext=""; + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[4] eq $searchstring){ + $fwintext = "$Lang::tr{'incoming firewall access'}:"; + } + if($fwinp{$key2}[6] eq $searchstring){ + $fwintext = "$Lang::tr{'incoming firewall access'}:"; + } + } + my @fwinrules = (); + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[4] eq $searchstring){ + push(@fwinrules, $key2); + } + if($fwinp{$key2}[6] eq $searchstring){ + push(@fwinrules, $key2); + } + } + my @fwinarraysorted = sort { $a <=> $b } @fwinrules; + foreach my $rule (@fwinarraysorted) + { + $fwintext .= " - $rule"; + } + #Count services used in firewall - outgoing + my $fwouttext=""; + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[4] eq $searchstring){ + $fwouttext = "$Lang::tr{'outgoing firewall access'}:"; + } + if($fwout{$key3}[6] eq $searchstring){ + $fwouttext = "$Lang::tr{'outgoing firewall access'}:"; + } + } + my @fwoutrules = (); + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[4] eq $searchstring){ + push(@fwoutrules, $key3); + } + if($fwout{$key3}[6] eq $searchstring){ + push(@fwoutrules, $key3); + } + } + my @fwoutarraysorted = sort { $a <=> $b } @fwoutrules; + foreach my $rule (@fwoutarraysorted) + { + $fwouttext .= " - $rule"; + } + if ($servicegrouptext) { + $titletext .= "$servicegrouptext" + } + if ($fwfwtext) { + if ($titletext) { + $titletext .= " " + } + $titletext .= "$fwfwtext" + } + if ($fwintext) { + if ($titletext) { + $titletext .= " " + } + $titletext .= "$fwintext" + } + if ($fwouttext) { + if ($titletext) { + $titletext .= " " + } + $titletext .= "$fwouttext" + } + return $titletext +} sub getsrvcount { my $searchstring=shift; @@ -2880,6 +3134,100 @@ sub getsrvcount } return $srvcounter; } +sub getsrvusedin +{ + my $searchstring=shift; + my $titletext=""; + #Count services used in servicegroups + my $servicegrouptext=""; + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[2] eq $searchstring){ + $servicegrouptext = "$Lang::tr{'outgoing firewall access'}:"; + } + } + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[2] eq $searchstring){ + $servicegrouptext .= " - $customservicegrp{$key}[0]"; + } + } + my $fwfwtext=""; + # first set title if found + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[15] eq $searchstring){ + $fwfwtext = "$Lang::tr{'firewall rules'}:"; + } + } + # then add rule numbers + my @fwfwrules = (); + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[15] eq $searchstring){ + push(@fwfwrules, $key1); + } + } + my @fwfwarraysorted = sort { $a <=> $b } @fwfwrules; + foreach my $rule (@fwfwarraysorted) + { + $fwfwtext .= " - $rule"; + } + #Count services used in firewall - input + my $fwintext=""; + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[15] eq $searchstring){ + $fwintext = "$Lang::tr{'incoming firewall access'}:"; + } + } + my @fwinrules = (); + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[15] eq $searchstring){ + push(@fwinrules, $key2); + } + } + my @fwinarraysorted = sort { $a <=> $b } @fwinrules; + foreach my $rule (@fwinarraysorted) + { + $fwintext .= " - $rule"; + } + #Count services used in firewall - outgoing + my $fwouttext=""; + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[15] eq $searchstring){ + $fwouttext = "$Lang::tr{'outgoing firewall access'}:"; + } + } + my @fwoutrules = (); + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[15] eq $searchstring){ + push(@fwoutrules, $key3); + } + } + my @fwoutarraysorted = sort { $a <=> $b } @fwoutrules; + foreach my $rule (@fwoutarraysorted) + { + $fwouttext .= " - $rule"; + } + if ($servicegrouptext ne '') { + $titletext .= "$servicegrouptext"; + } + if ($fwfwtext ne '') { + if ($titletext) { + $titletext .= " "; + } + $titletext .= "$fwfwtext"; + } + if ($fwintext ne '') { + if ($titletext) { + $titletext .= " "; + } + $titletext .= "$fwintext"; + } + if ($fwouttext) { + if ($titletext ne '') { + $titletext .= " "; + } + $titletext .= "$fwouttext"; + } + return $titletext +} sub deletefromgrp { my $target=shift; diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index 53d6903ae..130227910 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -122,6 +122,7 @@ 'The class number does not match the specified interface.' => 'Die Klassennummer passt nicht zum angegebenen Interface.', 'The destination IP address is invalid.' => 'Die Ziel-IP-Adresse ist ungültig.', 'The source IP address is invalid.' => 'Die Quell-IP-Adresse ist ungültig.', +'Unused' => 'Unbenutzt', 'Utilization on' => 'Auslastung auf', 'Verbose' => 'Verbose', 'WakeOnLan' => 'Wake On LAN', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index ef7d75ce7..e76ca878c 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -120,6 +120,7 @@ 'The class number does not match the specified interface.' => 'The class number does not match the specified interface.', 'The destination IP address is invalid.' => 'The destination IP address is invalid.', 'The source IP address is invalid.' => 'The source IP address is invalid.', +'Unused' => 'Unused', 'Utilization on' => 'Utilization on', 'Verbose' => 'Verbose:', 'WakeOnLan' => 'Wake On Lan', From patchwork Mon Jun 23 17:16:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 8849 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4bQvs61Ftmz3wnT for ; Mon, 23 Jun 2025 17:17:14 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "E5" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvs22bc6z78p for ; Mon, 23 Jun 2025 17:17:10 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4bQvs03PCBz371M for ; Mon, 23 Jun 2025 17:17:08 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4bQvrx3xZmz336H for ; Mon, 23 Jun 2025 17:17:05 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "michael.haj.ipfire.org", Issuer "E6" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvrw3TPwz1sd; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4bQvrw219dzTgQR; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: dietzmann@brecht-schule.hamburg, Michael Tremer Subject: [PATCH 2/5] fwhosts.cgi: Remove whitespace issues Date: Mon, 23 Jun 2025 17:16:55 +0000 Message-Id: <20250623171658.530138-2-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250623171658.530138-1-michael.tremer@ipfire.org> References: <20250623171658.530138-1-michael.tremer@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 Signed-off-by: Michael Tremer --- html/cgi-bin/fwhosts.cgi | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi index 6b4e22159..4e9c7f04d 100644 --- a/html/cgi-bin/fwhosts.cgi +++ b/html/cgi-bin/fwhosts.cgi @@ -1956,7 +1956,7 @@ END my $htmlparttouse=""; if ($netusedin) { $htmlparttouse = ""; - } else { + } else { $htmlparttouse = ""; } print"
$customnetwork{$key}[0]".&getcolor($colnet)."$customnetwork{$key}[3]$netcount x$htmlparttouse"; @@ -2117,7 +2117,7 @@ END my $htmlparttouse=""; if ($hostusedin) { $htmlparttouse = ""; - } else { + } else { $htmlparttouse = ""; } print"$customhost{$key}[0]".&getcolor($ip)."$customhost{$key}[3]$hostcount x$htmlparttouse"; @@ -2199,8 +2199,8 @@ sub viewtablegrp print "$Lang::tr{'used'}: $netgrpcount x "; my $groupusedin=&getusedin($grpname); if ($groupusedin) { - print ""; - } else { + print ""; + } else { print ""; } if($netgrpcount == '0') @@ -2343,8 +2343,8 @@ sub viewtablelocationgrp my $locationusedin=&getlocusedin($grpname); print "$Lang::tr{'used'}: $locationgrpcount x "; if ($locationusedin) { - print ""; - } else { + print ""; + } else { print ""; } # Only display delete icon, if the group is not used by a firewall rule. @@ -2492,7 +2492,7 @@ END my $htmlparttouse=""; if ($serviceusedin) { $htmlparttouse=""; - } else { + } else { $htmlparttouse=""; } if($customservice{$key}[3] eq 'All ICMP-Types'){print $Lang::tr{'fwdfw all icmp'};} @@ -2573,8 +2573,8 @@ sub viewtableservicegrp print "  $Lang::tr{'used'}: $grpcount x "; my $srvgrpusedin=&getsrvusedin($customservicegrp{$key}[0]); if ($srvgrpusedin) { - print ""; - } else { + print ""; + } else { print ""; } if($grpcount == '0') From patchwork Mon Jun 23 17:16:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 8847 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4bQvs60Vptz3wmf for ; Mon, 23 Jun 2025 17:17:14 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "E5" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvs22RgSz77f for ; Mon, 23 Jun 2025 17:17:10 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4bQvs02rk5z34ST for ; Mon, 23 Jun 2025 17:17:08 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4bQvrx3XTfz2y59 for ; Mon, 23 Jun 2025 17:17:05 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "michael.haj.ipfire.org", Issuer "E6" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvrw4tRCz2S7; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4bQvrw29HDzTgph; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: dietzmann@brecht-schule.hamburg, Michael Tremer Subject: [PATCH 3/5] fwhosts.cgi: Don't show anything if a host/group is unused Date: Mon, 23 Jun 2025 17:16:56 +0000 Message-Id: <20250623171658.530138-3-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250623171658.530138-1-michael.tremer@ipfire.org> References: <20250623171658.530138-1-michael.tremer@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 Signed-off-by: Michael Tremer --- html/cgi-bin/fwhosts.cgi | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi index 4e9c7f04d..69970a840 100644 --- a/html/cgi-bin/fwhosts.cgi +++ b/html/cgi-bin/fwhosts.cgi @@ -1956,8 +1956,6 @@ END my $htmlparttouse=""; if ($netusedin) { $htmlparttouse = ""; - } else { - $htmlparttouse = ""; } print"$customnetwork{$key}[0]".&getcolor($colnet)."$customnetwork{$key}[3]$netcount x$htmlparttouse"; print<$customhost{$key}[0]".&getcolor($ip)."$customhost{$key}[3]$hostcount x$htmlparttouse"; print<"; - } else { - print ""; } if($netgrpcount == '0') { @@ -2344,8 +2338,6 @@ sub viewtablelocationgrp print "$Lang::tr{'used'}: $locationgrpcount x "; if ($locationusedin) { print ""; - } else { - print ""; } # Only display delete icon, if the group is not used by a firewall rule. if($locationgrpcount == '0') { @@ -2492,8 +2484,6 @@ END my $htmlparttouse=""; if ($serviceusedin) { $htmlparttouse=""; - } else { - $htmlparttouse=""; } if($customservice{$key}[3] eq 'All ICMP-Types'){print $Lang::tr{'fwdfw all icmp'};} elsif($customservice{$key}[3] ne 'BLANK'){print $customservice{$key}[3];} @@ -2574,8 +2564,6 @@ sub viewtableservicegrp my $srvgrpusedin=&getsrvusedin($customservicegrp{$key}[0]); if ($srvgrpusedin) { print ""; - } else { - print ""; } if($grpcount == '0') { From patchwork Mon Jun 23 17:16:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 8848 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4bQvs60wJZz3wnR for ; Mon, 23 Jun 2025 17:17:14 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "E5" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvs22WXPz78Y for ; Mon, 23 Jun 2025 17:17:10 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4bQvs03NzRz371J for ; Mon, 23 Jun 2025 17:17:08 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4bQvrx3w7Fz3368 for ; Mon, 23 Jun 2025 17:17:05 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "michael.haj.ipfire.org", Issuer "E6" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvrw5cBqz4kG; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4bQvrw2K6YzTh9w; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: dietzmann@brecht-schule.hamburg, Michael Tremer Subject: [PATCH 4/5] fwhosts.cgi: Move the tooltip into the usage counter Date: Mon, 23 Jun 2025 17:16:57 +0000 Message-Id: <20250623171658.530138-4-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250623171658.530138-1-michael.tremer@ipfire.org> References: <20250623171658.530138-1-michael.tremer@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 This will clutter the page less as we don't have any good icon sets. Signed-off-by: Michael Tremer Tested-by: Adolf Belka --- html/cgi-bin/fwhosts.cgi | 42 +++++++++++----------------------------- 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi index 69970a840..953f81e5f 100644 --- a/html/cgi-bin/fwhosts.cgi +++ b/html/cgi-bin/fwhosts.cgi @@ -1932,7 +1932,7 @@ sub viewtablenet }else{ print< - $Lang::tr{'name'}$Lang::tr{'fwhost netaddress'}$Lang::tr{'remark'}$Lang::tr{'used'} + $Lang::tr{'name'}$Lang::tr{'fwhost netaddress'}$Lang::tr{'remark'}$Lang::tr{'used'} END } my $count=0; @@ -1953,11 +1953,7 @@ END my $colnet="$customnetwork{$key}[1]/".&General::subtocidr($customnetwork{$key}[2]); my $netcount=&getnetcount($customnetwork{$key}[0]); my $netusedin=&getusedin($customnetwork{$key}[0]); - my $htmlparttouse=""; - if ($netusedin) { - $htmlparttouse = ""; - } - print"$customnetwork{$key}[0]".&getcolor($colnet)."$customnetwork{$key}[3]$netcount x$htmlparttouse"; + print"$customnetwork{$key}[0]".&getcolor($colnet)."$customnetwork{$key}[3]$netcount x"; print< @@ -2091,7 +2087,7 @@ sub viewtablehost }else{ print< - $Lang::tr{'name'}$Lang::tr{'fwhost ip_mac'}$Lang::tr{'remark'}$Lang::tr{'used'} + $Lang::tr{'name'}$Lang::tr{'fwhost ip_mac'}$Lang::tr{'remark'}$Lang::tr{'used'} END } my $count=0; @@ -2112,12 +2108,9 @@ END my $hostcount=0; $hostcount=&gethostcount($customhost{$key}[0]); my $hostusedin=&getusedin($customhost{$key}[0]); - my $htmlparttouse=""; - if ($hostusedin) { - $htmlparttouse = ""; - } - print"$customhost{$key}[0]".&getcolor($ip)."$customhost{$key}[3]$hostcount x$htmlparttouse"; - print<$customhost{$key}[0]$color$customhost{$key}[3]$hostcount x @@ -2192,11 +2185,8 @@ sub viewtablegrp print "
$grpname   "; print " $Lang::tr{'remark'}:  $remark   " if ($remark ne ''); my $netgrpcount=&getnetcount($grpname); - print "$Lang::tr{'used'}: $netgrpcount x "; my $groupusedin=&getusedin($grpname); - if ($groupusedin) { - print ""; - } + print "$Lang::tr{'used'}: $netgrpcount x"; if($netgrpcount == '0') { print""; @@ -2335,10 +2325,7 @@ sub viewtablelocationgrp # Get group count. my $locationgrpcount=&getlocationcount($grpname); my $locationusedin=&getlocusedin($grpname); - print "$Lang::tr{'used'}: $locationgrpcount x "; - if ($locationusedin) { - print ""; - } + print "$Lang::tr{'used'}: $locationgrpcount x"; # Only display delete icon, if the group is not used by a firewall rule. if($locationgrpcount == '0') { print"
\n"; @@ -2459,7 +2446,7 @@ sub viewtableservice &General::readhasharray("$fwconfigout", \%fwout); print< - $Lang::tr{'fwhost srv_name'}$Lang::tr{'fwhost prot'}$Lang::tr{'fwhost port'}ICMP$Lang::tr{'fwhost used'} + $Lang::tr{'fwhost srv_name'}$Lang::tr{'fwhost prot'}$Lang::tr{'fwhost port'}ICMP$Lang::tr{'fwhost used'} END my $col=''; foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0])} keys %customservice) @@ -2481,14 +2468,10 @@ END #Neuer count $srvcount=&getsrvcount($customservice{$key}[0]); my $serviceusedin=&getsrvusedin($customservice{$key}[0]); - my $htmlparttouse=""; - if ($serviceusedin) { - $htmlparttouse=""; - } if($customservice{$key}[3] eq 'All ICMP-Types'){print $Lang::tr{'fwdfw all icmp'};} elsif($customservice{$key}[3] ne 'BLANK'){print $customservice{$key}[3];} print<$srvcount x$htmlparttouse + $srvcount x @@ -2560,11 +2543,8 @@ sub viewtableservicegrp if($count >0){print"";$count=1;} print "
$grpname    "; print "$Lang::tr{'remark'}:  $remark " if ($remark ne ''); - print "  $Lang::tr{'used'}: $grpcount x "; my $srvgrpusedin=&getsrvusedin($customservicegrp{$key}[0]); - if ($srvgrpusedin) { - print ""; - } + print "  $Lang::tr{'used'}: $grpcount x"; if($grpcount == '0') { print""; From patchwork Mon Jun 23 17:16:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 8851 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4bQvs61flBz3wnb for ; Mon, 23 Jun 2025 17:17:14 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "E5" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvs23yKqz79Q for ; Mon, 23 Jun 2025 17:17:10 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4bQvs03nSKz376v for ; Mon, 23 Jun 2025 17:17:08 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature RSA-PSS (4096 bits)) (Client CN "mail01.haj.ipfire.org", Issuer "R10" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4bQvrx4Mszz34C2 for ; Mon, 23 Jun 2025 17:17:05 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "michael.haj.ipfire.org", Issuer "E6" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4bQvrw6BK0z6Gh; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4bQvrw2VdRzThF8; Mon, 23 Jun 2025 17:17:04 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: dietzmann@brecht-schule.hamburg, Michael Tremer Subject: [PATCH 5/5] langs: Remove the unused "Unused" translation string Date: Mon, 23 Jun 2025 17:16:58 +0000 Message-Id: <20250623171658.530138-5-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250623171658.530138-1-michael.tremer@ipfire.org> References: <20250623171658.530138-1-michael.tremer@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 Signed-off-by: Michael Tremer --- doc/language_issues.en | 1 - doc/language_issues.es | 1 - doc/language_issues.fr | 1 - doc/language_issues.it | 1 - doc/language_issues.nl | 1 - doc/language_issues.pl | 1 - doc/language_issues.ru | 1 - doc/language_issues.tr | 1 - doc/language_missings | 7 ------- langs/de/cgi-bin/de.pl | 1 - langs/en/cgi-bin/en.pl | 1 - 11 files changed, 17 deletions(-) diff --git a/doc/language_issues.en b/doc/language_issues.en index 7d72fa99b..996572456 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -78,7 +78,6 @@ WARNING: untranslated string: TOS rule = TOS rule WARNING: untranslated string: The class number does not match the specified interface. = The class number does not match the specified interface. WARNING: untranslated string: The destination IP address is invalid. = The destination IP address is invalid. WARNING: untranslated string: The source IP address is invalid. = The source IP address is invalid. -WARNING: untranslated string: Unused = Unused WARNING: untranslated string: WakeOnLan = Wake On Lan WARNING: untranslated string: a ca certificate with this name already exists = A CA certificate with this name already exists. WARNING: untranslated string: a connection with this common name already exists = A connection with this common name already exists. diff --git a/doc/language_issues.es b/doc/language_issues.es index e90acf9d9..68836302a 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -980,7 +980,6 @@ WARNING: translation string unused: zoneconf val vlan tag range error WARNING: translation string unused: zoneconf val zoneslave amount error WARNING: untranslated string: Captive ACTIVATE = unknown string WARNING: untranslated string: Captive clients = unknown string -WARNING: untranslated string: Unused = Unused WARNING: untranslated string: ca name must only contain characters and spaces = unknown string WARNING: untranslated string: dns servers = DNS Servers WARNING: untranslated string: enable disable client = unknown string diff --git a/doc/language_issues.fr b/doc/language_issues.fr index db91be7fe..80341a1c3 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -959,7 +959,6 @@ WARNING: translation string unused: zoneconf val vlan amount assignment error WARNING: translation string unused: zoneconf val vlan tag assignment error WARNING: translation string unused: zoneconf val vlan tag range error WARNING: translation string unused: zoneconf val zoneslave amount error -WARNING: untranslated string: Unused = Unused WARNING: untranslated string: allowed subnets = Allowed Subnets WARNING: untranslated string: bypassed = Bypassed WARNING: untranslated string: ca name must only contain characters and spaces = unknown string diff --git a/doc/language_issues.it b/doc/language_issues.it index facb0c256..4ec3545ba 100644 --- a/doc/language_issues.it +++ b/doc/language_issues.it @@ -932,7 +932,6 @@ WARNING: untranslated string: Captive vouchervalid = Allowed time for this coupo WARNING: untranslated string: Captive wrong type = Uploaded file has wrong filetype WARNING: untranslated string: MTU settings = MTU settings: WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart -WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_issues.nl b/doc/language_issues.nl index 40710c698..56c6dadf6 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -932,7 +932,6 @@ WARNING: untranslated string: Captive vouchervalid = Allowed time for this coupo WARNING: untranslated string: Captive wrong type = Uploaded file has wrong filetype WARNING: untranslated string: MTU settings = MTU settings: WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart -WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_issues.pl b/doc/language_issues.pl index ef464100c..6ccb0a497 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -848,7 +848,6 @@ WARNING: untranslated string: MB read = MB read WARNING: untranslated string: MB written = MB written WARNING: untranslated string: MTU settings = MTU settings: WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart -WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_issues.ru b/doc/language_issues.ru index d4f669b1b..8a689daa7 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -843,7 +843,6 @@ WARNING: untranslated string: MB read = MB read WARNING: untranslated string: MB written = MB written WARNING: untranslated string: MTU settings = MTU settings: WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart -WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_issues.tr b/doc/language_issues.tr index f557f9a04..e79fe1388 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -925,7 +925,6 @@ WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Captive clients = unknown string WARNING: untranslated string: Captive delete logo = Delete Logo -WARNING: untranslated string: Unused = Unused WARNING: untranslated string: access point name = Access Point Name WARNING: untranslated string: access point name is invalid = Access Point Name is invalid WARNING: untranslated string: access point name is required = Access Point Name is required diff --git a/doc/language_missings b/doc/language_missings index 8487c8a26..cd005f45a 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -128,7 +128,6 @@ < dns servers < ids provider eol < online -< Unused ############################################################################ # Checking cgi-bin translations for language: fr # ############################################################################ @@ -182,7 +181,6 @@ < system time < timeformat < total -< Unused < upload fcdsl.o < warning < wg @@ -722,7 +720,6 @@ < unblock all < uncheck all < unlimited -< Unused < update ruleset < updxlrtr passive mode < uplink bit rate @@ -1359,7 +1356,6 @@ < unblock all < uncheck all < unlimited -< Unused < update ruleset < updxlrtr passive mode < uplink bit rate @@ -2402,7 +2398,6 @@ < unblock all < uncheck all < unlimited -< Unused < update ruleset < updxlrtr passive mode < updxlrtr sources @@ -3491,7 +3486,6 @@ < unblock all < uncheck all < unlimited -< Unused < update ruleset < updxlrtr passive mode < updxlrtr sources @@ -3981,7 +3975,6 @@ < traffic stat title < transfers < transport mode does not support vti -< Unused < update ruleset < updxlrtr passive mode < user management diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index 130227910..53d6903ae 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -122,7 +122,6 @@ 'The class number does not match the specified interface.' => 'Die Klassennummer passt nicht zum angegebenen Interface.', 'The destination IP address is invalid.' => 'Die Ziel-IP-Adresse ist ungültig.', 'The source IP address is invalid.' => 'Die Quell-IP-Adresse ist ungültig.', -'Unused' => 'Unbenutzt', 'Utilization on' => 'Auslastung auf', 'Verbose' => 'Verbose', 'WakeOnLan' => 'Wake On LAN', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index e76ca878c..ef7d75ce7 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -120,7 +120,6 @@ 'The class number does not match the specified interface.' => 'The class number does not match the specified interface.', 'The destination IP address is invalid.' => 'The destination IP address is invalid.', 'The source IP address is invalid.' => 'The source IP address is invalid.', -'Unused' => 'Unused', 'Utilization on' => 'Utilization on', 'Verbose' => 'Verbose:', 'WakeOnLan' => 'Wake On Lan',