public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [git.ipfire.org] IPFire 2.x development tree branch, next, updated. 08ab1b41dd8d83637915bd760395c41f9fc2f2c7
@ 2021-02-22 19:02 Michael Tremer
  0 siblings, 0 replies; only message in thread
From: Michael Tremer @ 2021-02-22 19:02 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 25880 bytes --]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".

The branch, next has been updated
       via  08ab1b41dd8d83637915bd760395c41f9fc2f2c7 (commit)
       via  11ddd84da83d1e3998c4b435e0ba826062aa5b23 (commit)
       via  01139abbe14407b47910fee3835258aef2fc6dd3 (commit)
       via  526280526150d998a8de5f4abec00c22ea97e960 (commit)
       via  b4434345dc8d4c0b912dddca584ca7cca90e899c (commit)
       via  8de94a23e0f1aa897f29d54e32782aa818261908 (commit)
       via  5e6eba884bb757f094b25091e5589973da09a94f (commit)
       via  63a1c81a636f3dee186625322b726d4fea7d0363 (commit)
       via  0b287952a6583edb3380d066e8d6cd0376e0b594 (commit)
      from  72c8478ee5233b8556cdce55238e3dce4676fb7f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 08ab1b41dd8d83637915bd760395c41f9fc2f2c7
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Mon Feb 22 19:01:07 2021 +0000

    Run "./make.sh lang"
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 11ddd84da83d1e3998c4b435e0ba826062aa5b23
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Mon Feb 22 19:00:45 2021 +0000

    core155: Ship zoneconf
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 01139abbe14407b47910fee3835258aef2fc6dd3
Author: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
Date:   Thu Feb 18 15:30:16 2021 +0100

    zoneconf.cgi: Add default value for STP and require input
    
    Signed-off-by: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 526280526150d998a8de5f4abec00c22ea97e960
Author: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
Date:   Thu Feb 18 15:30:15 2021 +0100

    zoneconf.cgi: Import network-functions.pl
    
    Remove custom functions and use network-functions.pl instead to detect
    the available zones correctly. This also removes the requirement that
    a device must be assigned for a zone to become visible/configurable.
    
    Fixes: #12568
    
    Signed-off-by: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit b4434345dc8d4c0b912dddca584ca7cca90e899c
Author: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
Date:   Thu Feb 18 15:30:14 2021 +0100

    zoneconf.cgi: Add Javascript for new GUI elements
    
    Signed-off-by: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 8de94a23e0f1aa897f29d54e32782aa818261908
Author: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
Date:   Thu Feb 18 15:30:13 2021 +0100

    zoneconf.cgi: Add STP options to GUI
    
    Changes & new features:
    - Add CSS for STP options, add texts to language files
    - Read STP settings from ethernet configuration and display inputs
    - Validate and save STP settings
    
    Signed-off-by: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 5e6eba884bb757f094b25091e5589973da09a94f
Author: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
Date:   Thu Feb 18 15:30:12 2021 +0100

    zoneconf.cgi: Modify CSS to allow additional rows
    
    Simplify borders, load more colors from header and add dividers
    
    Signed-off-by: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 63a1c81a636f3dee186625322b726d4fea7d0363
Author: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
Date:   Thu Feb 18 15:30:11 2021 +0100

    zoneconf.cgi: Change NIC display order, improve code
    
    Refactor duplicate perl code and add comments
    
    Signed-off-by: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 0b287952a6583edb3380d066e8d6cd0376e0b594
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Mon Feb 22 13:58:28 2021 +0000

    haproxy: Use new PCRE2 library
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

-----------------------------------------------------------------------

Summary of changes:
 config/rootfiles/core/155/filelists/files |   2 +
 doc/language_issues.de                    |   4 +
 doc/language_missings                     |  28 +++++
 html/cgi-bin/zoneconf.cgi                 | 191 ++++++++++++++++++++++++------
 html/html/include/zoneconf.js             |  27 +++++
 langs/de/cgi-bin/de.pl                    |   4 +
 langs/en/cgi-bin/en.pl                    |   4 +
 lfs/haproxy                               |   4 +-
 8 files changed, 224 insertions(+), 40 deletions(-)

Difference in files:
diff --git a/config/rootfiles/core/155/filelists/files b/config/rootfiles/core/155/filelists/files
index 688cfb1ac..83979493f 100644
--- a/config/rootfiles/core/155/filelists/files
+++ b/config/rootfiles/core/155/filelists/files
@@ -1,3 +1,5 @@
 srv/web/ipfire/cgi-bin/country.cgi
 srv/web/ipfire/cgi-bin/wirelessclient.cgi
+srv/web/ipfire/cgi-bin/zoneconf.cgi
+srv/web/ipfire/html/include/zoneconf.js
 usr/local/bin/filesystem-cleanup
diff --git a/doc/language_issues.de b/doc/language_issues.de
index 5d079036a..0e13af562 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -834,8 +834,12 @@ WARNING: translation string unused: zoneconf nic assignment
 WARNING: translation string unused: zoneconf nicmode bridge
 WARNING: translation string unused: zoneconf nicmode default
 WARNING: translation string unused: zoneconf nicmode macvtap
+WARNING: translation string unused: zoneconf stp enable
+WARNING: translation string unused: zoneconf stp priority
 WARNING: translation string unused: zoneconf val native assignment error
 WARNING: translation string unused: zoneconf val ppp assignment error
+WARNING: translation string unused: zoneconf val stp priority range error
+WARNING: translation string unused: zoneconf val stp zone mode error
 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 zoneslave amount error
diff --git a/doc/language_missings b/doc/language_missings
index f42be2e77..f10c4f242 100644
--- a/doc/language_missings
+++ b/doc/language_missings
@@ -902,9 +902,13 @@
 < zoneconf nicmode default
 < zoneconf nicmode macvtap
 < zoneconf notice reboot
+< zoneconf stp enable
+< zoneconf stp priority
 < zoneconf title
 < zoneconf val native assignment error
 < zoneconf val ppp assignment error
+< zoneconf val stp priority range error
+< zoneconf val stp zone mode error
 < zoneconf val vlan amount assignment error
 < zoneconf val vlan tag assignment error
 < zoneconf val zoneslave amount error
@@ -923,6 +927,10 @@
 < upload fcdsl.o
 < wlan client encryption wpa3
 < wlan client management frame protection
+< zoneconf stp enable
+< zoneconf stp priority
+< zoneconf val stp priority range error
+< zoneconf val stp zone mode error
 ############################################################################
 # Checking cgi-bin translations for language: it                           #
 ############################################################################
@@ -1302,9 +1310,13 @@
 < zoneconf nicmode default
 < zoneconf nicmode macvtap
 < zoneconf notice reboot
+< zoneconf stp enable
+< zoneconf stp priority
 < zoneconf title
 < zoneconf val native assignment error
 < zoneconf val ppp assignment error
+< zoneconf val stp priority range error
+< zoneconf val stp zone mode error
 < zoneconf val vlan amount assignment error
 < zoneconf val vlan tag assignment error
 < zoneconf val zoneslave amount error
@@ -1741,9 +1753,13 @@
 < zoneconf nicmode default
 < zoneconf nicmode macvtap
 < zoneconf notice reboot
+< zoneconf stp enable
+< zoneconf stp priority
 < zoneconf title
 < zoneconf val native assignment error
 < zoneconf val ppp assignment error
+< zoneconf val stp priority range error
+< zoneconf val stp zone mode error
 < zoneconf val vlan amount assignment error
 < zoneconf val vlan tag assignment error
 < zoneconf val zoneslave amount error
@@ -2622,9 +2638,13 @@
 < zoneconf nicmode default
 < zoneconf nicmode macvtap
 < zoneconf notice reboot
+< zoneconf stp enable
+< zoneconf stp priority
 < zoneconf title
 < zoneconf val native assignment error
 < zoneconf val ppp assignment error
+< zoneconf val stp priority range error
+< zoneconf val stp zone mode error
 < zoneconf val vlan amount assignment error
 < zoneconf val vlan tag assignment error
 < zoneconf val zoneslave amount error
@@ -3510,9 +3530,13 @@
 < zoneconf nicmode default
 < zoneconf nicmode macvtap
 < zoneconf notice reboot
+< zoneconf stp enable
+< zoneconf stp priority
 < zoneconf title
 < zoneconf val native assignment error
 < zoneconf val ppp assignment error
+< zoneconf val stp priority range error
+< zoneconf val stp zone mode error
 < zoneconf val vlan amount assignment error
 < zoneconf val vlan tag assignment error
 < zoneconf val zoneslave amount error
@@ -3701,9 +3725,13 @@
 < zoneconf nicmode default
 < zoneconf nicmode macvtap
 < zoneconf notice reboot
+< zoneconf stp enable
+< zoneconf stp priority
 < zoneconf title
 < zoneconf val native assignment error
 < zoneconf val ppp assignment error
+< zoneconf val stp priority range error
+< zoneconf val stp zone mode error
 < zoneconf val vlan amount assignment error
 < zoneconf val vlan tag assignment error
 < zoneconf val zoneslave amount error
diff --git a/html/cgi-bin/zoneconf.cgi b/html/cgi-bin/zoneconf.cgi
index 0914ceb78..b90ea8a41 100644
--- a/html/cgi-bin/zoneconf.cgi
+++ b/html/cgi-bin/zoneconf.cgi
@@ -25,45 +25,77 @@ use Scalar::Util qw(looks_like_number);
 require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
+require "${General::swroot}/network-functions.pl";
 
+###--- HTML HEAD ---###
 my $extraHead = <<END
 <style>
 	table#zoneconf {
 		width: 100%;
 		border-collapse: collapse;
+		border-style: hidden;
 		table-layout: fixed;
 	}
 
+	/* row height */
 	#zoneconf tr {
 		height: 4em;
 	}
+	#zoneconf tr.half-height {
+		height: 2em;
+	}
+	#zoneconf tr.half-height > td {
+		padding: 2px 10px;
+	}
 
+	/* section separators */
+	#zoneconf tr.divider-top {
+			border-top: 2px solid $Header::bordercolour;
+	}
+	#zoneconf tr.divider-bottom {
+			border-bottom: 2px solid $Header::bordercolour;
+	}
+
+	/* table cells */
 	#zoneconf td {
 		padding: 5px 10px;
-		border: 0.5px solid black;
+		border-left: 0.5px solid $Header::bordercolour;
 		text-align: center;
 	}
 
-	/* dark grey header cells */
+	/* grey header cells */
 	#zoneconf td.heading {
-		background-color: grey;
+		background-color: lightgrey;
 		color: white;
 	}	
-	#zoneconf td.heading::first-line {
+	#zoneconf td.heading.bold::first-line {
 		font-weight: bold;
 		line-height: 1.6;
 	}
 
-	/* narrow left column */
+	/* narrow left column with background color */
 	#zoneconf tr > td:first-child {
 		width: 11em;
 	}
+	#zoneconf tr.nic-row > td:first-child {
+			background-color: darkgray;
+	}
+	#zoneconf tr.nic-row {
+		border-bottom: 0.5px solid $Header::bordercolour;
+	}
+	#zoneconf tr.option-row > td:first-child {
+			background-color: gray;
+	}
 
 	/* alternating row background color */
+	#zoneconf tr {
+		background-color: $Header::table2colour;
+	}
 	#zoneconf tr:nth-child(2n+3) {
-		background-color: #F0F0F0;
+		background-color: $Header::table1colour;
 	}
 
+	/* special cell colors */
 	#zoneconf td.green {
 		background-color: $Header::colourgreen;
 	}
@@ -82,13 +114,14 @@ my $extraHead = <<END
 
 	#zoneconf td.topleft {
 		background-color: $Header::pagecolour;
-		border-top-style: none;
-		border-left-style: none;
 	}
 
 	input.vlanid {
 		width: 4em;
 	}
+	input.stp-priority {
+		width: 5em;
+	}
 
 	#submit-container {
 		width: 100%;
@@ -105,7 +138,9 @@ my $extraHead = <<END
 <script src="/include/zoneconf.js"></script>
 END
 ;
+###--- END HTML HEAD ---###
 
+### Read configuration ###
 my %ethsettings = ();
 my %vlansettings = ();
 my %cgiparams = ();
@@ -118,8 +153,8 @@ my $restart_notice = "";
 &Header::getcgihash(\%cgiparams);
 &Header::showhttpheaders();
 
-# Define all zones we will check for NIC assignment
-my @zones = ("green", "red", "orange", "blue");
+# Get all network zones that are currently enabled
+my @zones = Network::get_available_network_zones();
 
 # Get all physical NICs present
 opendir(my $dh, "/sys/class/net/");
@@ -153,6 +188,7 @@ foreach (@nics) {
 	}
 }
 
+### START PAGE ###
 &Header::openpage($Lang::tr{"zoneconf title"}, 1, $extraHead);
 &Header::openbigbox('100%', 'center');
 
@@ -162,7 +198,8 @@ if ($cgiparams{"ACTION"} eq $Lang::tr{"save"}) {
 	my %VALIDATE_nic_check = ();
 	my $VALIDATE_error = "";
 
-	foreach (@zones) {
+	# Loop trough all known zones to ensure a complete configuration file is created
+	foreach (@Network::known_network_zones) {
 		my $uc = uc $_;
 		my $slave_string = "";
 		my $zone_mode = $cgiparams{"MODE $uc"};
@@ -195,6 +232,7 @@ if ($cgiparams{"ACTION"} eq $Lang::tr{"save"}) {
 				}
 			}
 
+			# skip NIC/VLAN assignment and additional zone options for RED in PPP mode
 			next;
 		}
 
@@ -276,8 +314,28 @@ if ($cgiparams{"ACTION"} eq $Lang::tr{"save"}) {
 		} elsif ($zone_mode eq "MACVTAP") {
 			$ethsettings{"${uc}_MODE"} = "macvtap";
 		}
+
+		# STP options
+		# (this has already been skipped when RED is in PPP mode, so we don't need to check for PPP here)
+		$ethsettings{"${uc}_STP"} = "";
+		my $stp_enabled = $cgiparams{"STP-$uc"} eq "on";
+		my $stp_priority = $cgiparams{"STP-PRIORITY-$uc"};
+
+		if($stp_enabled) {
+			unless($ethsettings{"${uc}_MODE"} eq "bridge") { # STP is only available in bridge mode
+				$VALIDATE_error = $Lang::tr{"zoneconf val stp zone mode error"};
+				last;
+			}
+			unless (looks_like_number($stp_priority) && ($stp_priority >= 1) && ($stp_priority <= 65535)) { # STP bridge priority range: 1..65535
+				$VALIDATE_error = $Lang::tr{"zoneconf val stp priority range error"};
+				last;
+			}
+			$ethsettings{"${uc}_STP"} = "on"; # network-hotplug-bridges expects "on"
+			$ethsettings{"${uc}_STP_PRIORITY"} = $stp_priority;
+		}
 	}
 
+	# validation failed, show error message and exit
 	if ($VALIDATE_error) {
 		&Header::openbox('100%', 'left', $Lang::tr{"error"});
 
@@ -290,20 +348,21 @@ if ($cgiparams{"ACTION"} eq $Lang::tr{"save"}) {
 		exit 0;
 	}
 
+	# new settings are valid, write configuration files
 	&General::writehash("${General::swroot}/ethernet/settings",\%ethsettings);
 	&General::writehash("${General::swroot}/ethernet/vlans",\%vlansettings);
 
 	$restart_notice = $Lang::tr{'zoneconf notice reboot'};
 }
 
-&Header::openbox('100%', 'left', $Lang::tr{"zoneconf nic assignment"});
-
 ### START OF TABLE ###
 
+&Header::openbox('100%', 'left', $Lang::tr{"zoneconf nic assignment"});
+
 print <<END
 <form method='post' enctype='multipart/form-data'>
 	<table id="zoneconf">
-	<tr>
+	<tr class="divider-bottom">
 		<td class="topleft"></td>
 END
 ;
@@ -311,19 +370,13 @@ END
 # Fill the table header with all activated zones
 foreach (@zones) {
 	my $uc = uc $_;
-	my $dev_name = $ethsettings{"${uc}_DEV"};
 
-	if ($dev_name eq "") { # If the zone is not activated, don't show it
-		next;
-	}
-
-	# If the zone is in PPP mode, don't show a mode dropdown
+	# If the red zone is in PPP mode, don't show a mode dropdown
 	if ($uc eq "RED") {
 		my $red_type = $ethsettings{"RED_TYPE"};
-		my $red_restricted = ($uc eq "RED" && ! ($red_type eq "STATIC" || $red_type eq "DHCP"));
 
-		if ($red_restricted) {
-			print "\t\t<td class='heading $_'>$uc ($red_type)</td>\n";
+		unless (Network::is_red_mode_ip()) {
+			print "\t\t<td class='heading bold $_'>$uc ($red_type)</td>\n";
 
 			next; # We're done here
 		}
@@ -341,8 +394,8 @@ foreach (@zones) {
 	}
 
 	print <<END
-		<td class='heading $_'>$uc<br>
-			<select name="MODE $uc">
+		<td class='heading bold $_'>$uc<br>
+			<select name="MODE $uc" data-zone="$uc" onchange="changeZoneMode(this)">
 				<option value="DEFAULT" $mode_selected{"DEFAULT"}>$Lang::tr{"zoneconf nicmode default"}</option>
 				<option value="BRIDGE" $mode_selected{"BRIDGE"}>$Lang::tr{"zoneconf nicmode bridge"}</option>
 				<option value="MACVTAP" $mode_selected{"MACVTAP"}>$Lang::tr{"zoneconf nicmode macvtap"}</option>
@@ -354,30 +407,23 @@ END
 
 print "\t</tr>\n";
 
+# NIC assignment matrix
 foreach (@nics) {
 	my $mac = $_->[0];
 	my $nic = $_->[1];
 	my $wlan = $_->[2];
 
-	print "\t<tr>\n";
-	print "\t\t<td class='heading'>$nic<br>$mac</td>\n";
+	print "\t<tr class='nic-row'>\n";
+	print "\t\t<td class='heading bold'>$nic<br>$mac</td>\n";
 
 	# Iterate through all zones and check if the current NIC is assigned to it
 	foreach (@zones) {
 		my $uc = uc $_;
-		my $dev_name = $ethsettings{"${uc}_DEV"};
 		my $highlight = "";
 
-		if ($dev_name eq "") { # Again, skip the zone if it is not activated
-			next;
-		}
-
 		if ($uc eq "RED") {
-			my $red_type = $ethsettings{"RED_TYPE"};
-			my $red_restricted = ($uc eq "RED" && ! ($red_type eq "STATIC" || $red_type eq "DHCP"));
-
 			# VLANs/Bridging is not possible if the RED interface is set to PPP, PPPoE, VDSL, ...
-			if ($red_restricted) {
+			unless (Network::is_red_mode_ip()) {
 				my $checked = "";
 
 				if ($mac eq $ethsettings{"${uc}_MACADDR"}) {
@@ -432,7 +478,7 @@ END
 		if ($access_selected{"NONE"} eq "") {
 			$highlight = $_;
 		}
-
+		
 		print <<END
 		<td class="$highlight">
 			<select name="ACCESS $uc $mac" data-zone="$uc" data-mac="$mac" onchange="highlightAccess(this)">
@@ -440,7 +486,7 @@ END
 				<option value="NATIVE" $access_selected{"NATIVE"}>$Lang::tr{"zoneconf access native"}</option>
 				<option value="VLAN" $access_selected{"VLAN"} $vlan_disabled>$Lang::tr{"zoneconf access vlan"}</option>
 			</select>
-			<input type="number" class="vlanid" id="TAG-$uc-$mac" name="TAG $uc $mac" min="1" max="4095" value="$zone_vlan_id" $field_disabled>
+			<input type="number" class="vlanid" id="TAG-$uc-$mac" name="TAG $uc $mac" min="1" max="4095" value="$zone_vlan_id" required $field_disabled>
 		</td>
 END
 ;
@@ -449,6 +495,75 @@ END
 	print "\t</tr>\n";
 }
 
+# STP options
+my @stp_html = (); # form fields buffer (two rows)
+
+foreach (@zones) { # load settings and prepare form elements for each zone
+	my $uc = uc $_;
+
+	# STP is not available if the RED interface is set to PPP, PPPoE, VDSL, ...
+	if ($uc eq "RED") {
+		unless (Network::is_red_mode_ip()) {
+			push(@stp_html, ["\t\t<td></td>\n", "\t\t<td></td>\n"]); # print empty cell
+			next;
+		}
+	}
+
+	# load configuration
+	my $stp_available = $ethsettings{"${uc}_MODE"} eq "bridge"; # STP is only available in bridge mode
+	my $stp_enabled = $ethsettings{"${uc}_STP"} eq "on";
+	my $stp_priority = $ethsettings{"${uc}_STP_PRIORITY"};
+	
+	# set priority to default value if no numerical value is configured
+	$stp_priority = 32768 unless looks_like_number($stp_priority);
+
+	# form element modifiers
+	my $checked = "";
+	my $disabled = "";
+	$checked = "checked" if ($stp_available && $stp_enabled);
+	$disabled = "disabled" unless $stp_available;
+
+	# enable checkbox HTML
+	my $row_1 = <<END
+		<td>
+			<input type="checkbox" id="STP-$uc" name="STP-$uc" data-zone="$uc" onchange="changeEnableSTP(this)" $disabled $checked>
+		</td>
+END
+;
+	$disabled = "disabled" unless $stp_enabled; # STP priority can't be entered if STP is disabled
+
+	# priority input box HTML
+	my $row_2 = <<END
+		<td>
+			<input type="number" class="stp-priority" id="STP-PRIORITY-$uc" name="STP-PRIORITY-$uc" min="1" max="65535" value="$stp_priority" required $disabled>
+		</td>
+END
+;
+	# add fields to buffer
+	push(@stp_html, [$row_1, $row_2]);
+}
+
+# print two rows of prepared form elements
+print <<END
+	<tr class="half-height divider-top option-row">
+		<td class="heading bold">$Lang::tr{"zoneconf stp enable"}</td>
+END
+;
+foreach (@stp_html) {
+	print $_->[0]; # row 1
+}
+print <<END
+	</tr>
+	<tr class="half-height option-row">
+		<td class="heading">$Lang::tr{"zoneconf stp priority"}</td>
+END
+;
+foreach (@stp_html) {
+	print $_->[1]; # row 2
+}
+print "\t</tr>\n";
+
+# footer and submit button
 print <<END
 	</table>
 
diff --git a/html/html/include/zoneconf.js b/html/html/include/zoneconf.js
index d76f0ab68..d27a79bc8 100644
--- a/html/html/include/zoneconf.js
+++ b/html/html/include/zoneconf.js
@@ -54,3 +54,30 @@ function highlightAccess(selectObj) {
 	//if interface is assigned, highlight table cell in zone color
 	colorParentCell(selectObj, zoneColor, (selectObj.value !== 'NONE'));
 }
+
+//update zone mode
+function changeZoneMode(selectObj) {
+	if(!(selectObj && ('zone' in selectObj.dataset))) {
+		return; //required parameters are missing
+	}
+
+	// STP enable checkbox
+	let stpEnable = document.getElementById('STP-' + selectObj.dataset.zone);
+	if(stpEnable) {
+		stpEnable.disabled = (selectObj.value !== 'BRIDGE'); //STP is available if zone is in bridge mode
+		stpEnable.checked = stpEnable.checked && (! stpEnable.disabled); //un-check if disabled
+		stpEnable.dispatchEvent(new Event('change'));
+	}
+}
+
+//STP enable checkbox change toggles priority input
+function changeEnableSTP(inputObj) {
+	if(!(inputObj && ('zone' in inputObj.dataset))) {
+		return; //required parameters are missing
+	}
+
+	let priority = document.getElementById('STP-PRIORITY-' + inputObj.dataset.zone);
+	if(priority) {
+		priority.disabled = inputObj.disabled || (! inputObj.checked);
+	}
+}
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index 307b8a97c..b3c2a69da 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -2979,9 +2979,13 @@
 'zoneconf nicmode default' => 'Normal',
 'zoneconf nicmode macvtap' => 'MacVTap',
 'zoneconf notice reboot' => 'Bitte einen Neustart durchführen, um die Änderungen zu übernehmen.',
+'zoneconf stp enable' => 'STP aktivieren',
+'zoneconf stp priority' => 'Brücke Priorität',
 'zoneconf title' => 'Zonen einrichten',
 'zoneconf val native assignment error' => 'Eine Netzwerkkarte kann nicht von mehreren Zonen nativ verwendet werden.',
 'zoneconf val ppp assignment error' => 'Die Netzwerkkarte, die von RED im PPP-Modus verwendet wird, kann keiner anderen Zone zugeordnet werden.',
+'zoneconf val stp priority range error' => 'STP Brücke Priorität muss im Bereich 1-65535 liegen',
+'zoneconf val stp zone mode error' => 'STP kann nur aktiviert werden, wenn sich die Zone im Brückenmodus befindet',
 'zoneconf val vlan amount assignment error' => 'Pro Zone kann nur ein VLAN verwendet werden.',
 'zoneconf val vlan tag assignment error' => 'Pro Netzwerkkarte kann derselbe VLAN-Tag nur einmal verwendet werden.',
 'zoneconf val zoneslave amount error' => 'Wenn eine Zone nicht im Brückenmodus ist, kann ihr nur eine Netzwerkkarte zugewiesen werden.',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index 95a1cfda4..9767be178 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -3028,9 +3028,13 @@
 'zoneconf nicmode default' => 'Default',
 'zoneconf nicmode macvtap' => 'MacVTap',
 'zoneconf notice reboot' => 'Please reboot to apply your changes.',
+'zoneconf stp enable' => 'STP enable',
+'zoneconf stp priority' => 'Bridge Priority',
 'zoneconf title' => 'Zone Configuration',
 'zoneconf val native assignment error' => 'A NIC cannot be accessed natively by more than one zone.',
 'zoneconf val ppp assignment error' => 'The NIC used for RED in PPP mode cannot be accessed by any other zone.',
+'zoneconf val stp priority range error' => 'STP bridge priority must be in the range of 1-65535',
+'zoneconf val stp zone mode error' => 'STP can only be enabled if the zone is in bridge mode',
 'zoneconf val vlan amount assignment error' => 'A zone cannot have more than one VLAN assigned.',
 'zoneconf val vlan tag assignment error' => 'You cannot use the same VLAN tag more than once per NIC.',
 'zoneconf val zoneslave amount error' => 'A zone that is not in bridge mode can\'t have more than one NIC assigned',
diff --git a/lfs/haproxy b/lfs/haproxy
index fcb3199c9..5247c7148 100644
--- a/lfs/haproxy
+++ b/lfs/haproxy
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = haproxy
-PAK_VER    = 17
+PAK_VER    = 18
 
 DEPS       =
 
@@ -83,7 +83,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 
 	cd $(DIR_APP) && make $(MAKETUNING) CPU="generic" TARGET="linux-glibc" \
-		USE_LUA=1 USE_OPENSSL=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_ZLIB=1 USE_REGPARM=1 \
+		USE_LUA=1 USE_OPENSSL=1 USE_PCRE2=1 USE_PCRE2_JIT=1 USE_ZLIB=1 USE_REGPARM=1 \
 		LUA_LIB_NAME="lua" ADDINC="$(CFLAGS)" USE_LINUX_TPROXY=1 ADDLIB="$(LDFLAGS)"
 
 	cd $(DIR_APP) && make install-bin install-man PREFIX=/usr


hooks/post-receive
--
IPFire 2.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-02-22 19:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-22 19:02 [git.ipfire.org] IPFire 2.x development tree branch, next, updated. 08ab1b41dd8d83637915bd760395c41f9fc2f2c7 Michael Tremer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox