* [PATCH v2 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css
@ 2023-03-02 14:11 Adolf Belka
2023-03-02 14:11 ` [PATCH v2 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red Adolf Belka
2023-03-03 18:11 ` [PATCH v2 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css Bernhard Bitsch
0 siblings, 2 replies; 4+ messages in thread
From: Adolf Belka @ 2023-03-02 14:11 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 4162 bytes --]
- This v2 version moves the extraHead variable to header.pl as many of the css values
will be used in many other WUI cgi pages so makes sense to not define anew in every
location using the bgcolor or other colour variables.
- I will submit patches to follow the same approach in all other WUI cgi pages once this
has been submitted into next
- bgcolor was deprecated in HTML 4.01 and is not supported by HTML 5
- The orange colour for IP's that are outside the IPFire green and blue subnets does not
work on any browser I am using.
- I used the CSS approach that @Leo used in the Zone Configuration cgi page
- This patch changes all existing bgcolor entries to the css based background-color
- Tested on my vm testbed and confirmed to work. The Orange colour for IP's outside of
the subnet now shows up.
Fixes: Bug#10629
Tested-by: Adolf Belka <adolf.belka(a)ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
---
| 17 +++++++++++++++++
html/cgi-bin/dhcp.cgi | 23 ++++++++++++-----------
2 files changed, 29 insertions(+), 11 deletions(-)
--git a/config/cfgroot/header.pl b/config/cfgroot/header.pl
index 3956d80a1..b25f83e26 100644
--- a/config/cfgroot/header.pl
+++ b/config/cfgroot/header.pl
@@ -41,6 +41,23 @@ $Header::colourvpn = '#990099';
$Header::colourerr = '#FF0000';
$Header::viewsize = 150;
$Header::errormessage = '';
+$Header::extraHead = <<END
+<style>
+ .row-color20 {
+ background-color: $color{'color20'};
+ }
+ .row-color22 {
+ background-color: $color{'color22'};
+ }
+ .row-colouryellow {
+ background-color: $Header::colouryellow;
+ }
+ .cell-orange {
+ background-color: orange;
+ }
+</style>
+END
+;
my %menuhash = ();
my $menu = \%menuhash;
%settings = ();
diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi
index 125713285..4d4c21a7f 100644
--- a/html/cgi-bin/dhcp.cgi
+++ b/html/cgi-bin/dhcp.cgi
@@ -547,7 +547,8 @@ if ($dhcpsettings{'ACTION'} eq '' ) { # First launch from GUI
$dhcpsettings{'ADVOPT_ENABLED'} = 'on';
}
-&Header::openpage($Lang::tr{'dhcp configuration'}, 1, '');
+### START PAGE ###
+&Header::openpage($Lang::tr{'dhcp configuration'}, 1, $Header::extraHead);
&Header::openbigbox('100%', 'left', '', $errormessage);
if ($errormessage) {
@@ -843,11 +844,11 @@ foreach my $line (@current1) {
}
if ($dhcpsettings{'KEY1'} eq $key) {
- print "<tr bgcolor='${Header::colouryellow}'>";
+ print "<tr class='row-colouryellow'>";
} elsif ($key % 2) {
- print "<tr bgcolor='$color{'color22'}'>";
+ print "<tr class='row-color22'>";
} else {
- print "<tr bgcolor='$color{'color20'}'>";
+ print "<tr class='row-color20'>";
}
print <<END
@@ -1069,13 +1070,13 @@ foreach my $line (@current2) {
if ($dhcpsettings{'KEY2'} eq $key) {
print "<tr>";
- $col="bgcolor='${Header::colouryellow}'";
+ $col="class='row-colouryellow'";
} elsif ($key % 2) {
print "<tr>";
- $col="bgcolor='$color{'color20'}'";
+ $col="class='row-color20'";
} else {
print "<tr>";
- $col="bgcolor='$color{'color22'}'";
+ $col="class='row-color22'";
}
my $TAG0 = '';
my $TAG1 = '';
@@ -1091,12 +1092,12 @@ foreach my $line (@current2) {
$TAG3 = '</b>';
}
if ($ipoutside{$temp[1]} > 0) {
- $TAG4 = "bgcolor='orange'" if ($dhcpsettings{'KEY2'} ne $key);
+ $TAG4 = "class='cell-orange'" if ($dhcpsettings{'KEY2'} ne $key);
}
print <<END
<td align='center' $col>$TAG2$temp[0]$TAG3</td>
-<td align='center' $col $TAG4>$TAG0$temp[1]$TAG1</td>
+<td align='center' $TAG4 $col>$TAG0$temp[1]$TAG1</td>
<td align='center' $col>$temp[6] </td>
<td align='center' $col>$temp[3] </td>
<td align='center' $col>$temp[4] </td>
@@ -1153,8 +1154,8 @@ print <<END
</tr>
<tr>
<td> </td>
- <td bgcolor='orange'> </td>
- <td class='base'>$Lang::tr{'ip address outside subnets'}</td>
+ <td> </td>
+ <td class='base cell-orange'>$Lang::tr{'ip address outside subnets'}</td>
<td> </td>
<td> </td>
$dup
--
2.39.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red
2023-03-02 14:11 [PATCH v2 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css Adolf Belka
@ 2023-03-02 14:11 ` Adolf Belka
2023-03-03 18:12 ` Bernhard Bitsch
2023-03-03 18:11 ` [PATCH v2 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css Bernhard Bitsch
1 sibling, 1 reply; 4+ messages in thread
From: Adolf Belka @ 2023-03-02 14:11 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 22037 bytes --]
- This v2 patch has moved the extraHead variable into header.pl
- This patch marks all IP's that are in the Fixed list but are also in the dynamic range
that has been defined, in red.
- Additional function created to check if an ip address is in a defined range.
- Added an additional key item under the Fixed Leases table for Fixed IP in dynamic range
- Added line to English Language file for this key item.
- ./make lang run before commit.
- Tested in vm testbed and confirmed that any ip address in the Fixed Leases table that
is in the defined dynamic range is highlighted in red
- This uses the css background-color appoach from the first patch in this set.
- This patch only highlights those IP's that overlap in red but does nothing more. So a
user can still create new ones if they want but they will all show up in red.
- This patch flags up if people are doing things that they shouldn't be doing but allows
them to continue doing so without changing anything if they don't want to and so will
not break existing setups.
Fixes: Bug#10629
Tested-by: Adolf Belka <adolf.belka(a)ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
---
| 3 +++
config/cfgroot/network-functions.pl | 24 ++++++++++++++++++++++++
doc/language_issues.de | 2 +-
doc/language_issues.en | 2 +-
doc/language_issues.es | 2 ++
doc/language_issues.fr | 15 ++++++---------
doc/language_issues.it | 2 +-
doc/language_issues.nl | 2 +-
doc/language_issues.pl | 2 +-
doc/language_issues.ru | 2 +-
doc/language_issues.tr | 2 +-
doc/language_missings | 15 ++++++++-------
html/cgi-bin/dhcp.cgi | 27 ++++++++++++++++++++-------
langs/en/cgi-bin/en.pl | 1 +
14 files changed, 71 insertions(+), 30 deletions(-)
--git a/config/cfgroot/header.pl b/config/cfgroot/header.pl
index b25f83e26..cd56e574f 100644
--- a/config/cfgroot/header.pl
+++ b/config/cfgroot/header.pl
@@ -54,6 +54,9 @@ $Header::extraHead = <<END
}
.cell-orange {
background-color: orange;
+ }
+ .cell-red {
+ background-color: red;
}
</style>
END
diff --git a/config/cfgroot/network-functions.pl b/config/cfgroot/network-functions.pl
index 4ac6d8670..7b38cfac7 100644
--- a/config/cfgroot/network-functions.pl
+++ b/config/cfgroot/network-functions.pl
@@ -307,6 +307,24 @@ sub ip_address_in_network($$) {
return (($address_bin >= $network_bin) && ($address_bin <= $broadcast_bin));
}
+# Returns True if $ipaddress is within $ipstart and $ipend range.
+sub ip_address_in_range($$) {
+ my $ipaddress = shift;
+ my $ipstart = shift;
+ my $ipend = shift;
+
+ my $ipaddress_bin = &ip2bin($ipaddress);
+ return undef unless (defined $ipaddress_bin);
+
+ my $ipstart_bin = &ip2bin($ipstart);
+ return undef unless (defined $ipstart_bin);
+
+ my $ipend_bin = &ip2bin($ipend);
+ return undef unless (defined $ipend_bin);
+
+ return (($ipaddress_bin >= $ipstart_bin) && ($ipaddress_bin <= $ipend_bin));
+}
+
sub setup_upstream_proxy() {
my %proxysettings = ();
&General::readhash("${General::swroot}/proxy/settings", \%proxysettings);
@@ -666,6 +684,12 @@ sub testsuite() {
$result = &ip_address_in_network("192.168.30.11", "0.0.0.0/8");
assert('ip_address_in_network("192.168.30.11", "0.0.0.0/8")', !$result);
+ $result = &ip_address_in_range("192.168.30.11", "192.168.30.10", "192.168.30.20");
+ assert('ip_address_in_range("192.168.30.11", "192.168.30.10", "192.168.30.20")', $result);
+
+ $result = &ip_address_in_range("192.168.30.21", "192.168.30.10", "192.168.30.20");
+ assert('ip_address_in_range("192.168.30.21", "192.168.30.10", "192.168.30.20")', !$result);
+
print "Testsuite completed successfully!\n";
return 0;
diff --git a/doc/language_issues.de b/doc/language_issues.de
index 88c7879be..392416192 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -883,7 +883,7 @@ WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: desired = Desired
-WARNING: untranslated string: dh parameter = unknown string
+WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: disable = Disable
WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: enable = Enable
diff --git a/doc/language_issues.en b/doc/language_issues.en
index c29e3bed6..08fda35b7 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -574,7 +574,6 @@ WARNING: untranslated string: details = Details
WARNING: untranslated string: device = Device
WARNING: untranslated string: devices on blue = Devices on BLUE
WARNING: untranslated string: dh = Diffie-Hellman-Parameter
-WARNING: untranslated string: dh parameter = unknown string
WARNING: untranslated string: dhcp advopt add = Add a DHCP option
WARNING: untranslated string: dhcp advopt added = DHCP option added
WARNING: untranslated string: dhcp advopt blank value = DHCP Option value cannot be empty.
@@ -601,6 +600,7 @@ WARNING: untranslated string: dhcp dns key name = Key Name
WARNING: untranslated string: dhcp dns update = DNS Update
WARNING: untranslated string: dhcp dns update algo = Algorithm
WARNING: untranslated string: dhcp dns update secret = Secret
+WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
WARNING: untranslated string: dhcp server = DHCP Server
WARNING: untranslated string: dhcp server disabled = DHCP server disabled. Stopped.
diff --git a/doc/language_issues.es b/doc/language_issues.es
index 0bd390d5d..ffe423bd1 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -228,6 +228,7 @@ WARNING: translation string unused: dh key move failed
WARNING: translation string unused: dh key warn
WARNING: translation string unused: dh key warn1
WARNING: translation string unused: dh name is invalid
+WARNING: translation string unused: dh parameter
WARNING: translation string unused: dhcp base ip fixed lease
WARNING: translation string unused: dhcp create fixed leases
WARNING: translation string unused: dhcp fixed lease err1
@@ -943,6 +944,7 @@ WARNING: untranslated string: access point name is invalid = Access Point Name i
WARNING: untranslated string: access point name is required = Access Point Name is required
WARNING: untranslated string: bytes = unknown string
WARNING: untranslated string: cpu frequency = CPU frequency
+WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: dns servers = DNS Servers
WARNING: untranslated string: error message = unknown string
WARNING: untranslated string: fwhost cust locationgrp = unknown string
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 56d69d86e..cb06f0ab3 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -392,7 +392,6 @@ WARNING: translation string unused: generatepolicy
WARNING: translation string unused: generatereport
WARNING: translation string unused: genkey
WARNING: translation string unused: green interface
-WARNING: translation string unused: guaranteed bandwith
WARNING: translation string unused: guest ok
WARNING: translation string unused: gz with key
WARNING: translation string unused: harddisk temperature graphs
@@ -404,6 +403,7 @@ WARNING: translation string unused: host deny
WARNING: translation string unused: hostname and domain already in use
WARNING: translation string unused: hour-graph
WARNING: translation string unused: hours2
+WARNING: translation string unused: ibod for dual isdn only
WARNING: translation string unused: icmp selected but no type
WARNING: translation string unused: icmp type
WARNING: translation string unused: id
@@ -453,6 +453,10 @@ WARNING: translation string unused: ipblocklist category scanner
WARNING: translation string unused: ipfire side
WARNING: translation string unused: ipsec no connections
WARNING: translation string unused: iptable rules
+WARNING: translation string unused: isdn
+WARNING: translation string unused: isdn settings
+WARNING: translation string unused: isdn1
+WARNING: translation string unused: isdn2
WARNING: translation string unused: javascript menu error1
WARNING: translation string unused: javascript menu error2
WARNING: translation string unused: kernel version
@@ -908,15 +912,11 @@ WARNING: translation string unused: zoneconf val zoneslave amount error
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
-WARNING: untranslated string: advproxy errmsg invalid url = Invalid URL
WARNING: untranslated string: core notice 3 = available.
-WARNING: untranslated string: dh = Diffie-Hellman-Parameter
-WARNING: untranslated string: dh parameter = unknown string
-WARNING: untranslated string: email recipient invalid = Invalid email recipient
+WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: error message = unknown string
WARNING: untranslated string: fwhost cust locationgrp = unknown string
WARNING: untranslated string: fwhost err hostip = unknown string
-WARNING: untranslated string: guaranteed bandwidth = Guaranteed bandwidth
WARNING: untranslated string: guardian block a host = unknown string
WARNING: untranslated string: guardian block httpd brute-force = unknown string
WARNING: untranslated string: guardian block ssh brute-force = unknown string
@@ -947,9 +947,6 @@ WARNING: untranslated string: guardian logtarget_syslog = unknown string
WARNING: untranslated string: guardian no entries = unknown string
WARNING: untranslated string: guardian service = unknown string
WARNING: untranslated string: pakfire ago = ago.
-WARNING: untranslated string: retbleed = Retbleed
WARNING: untranslated string: route config changed = unknown string
WARNING: untranslated string: routing config added = unknown string
WARNING: untranslated string: routing config changed = unknown string
-WARNING: untranslated string: service boot setting unavailable = No valid runlevel symlink was found for the initscript of this service.
-WARNING: untranslated string: show dh = Show Diffie-Hellman parameters
diff --git a/doc/language_issues.it b/doc/language_issues.it
index 9999f947c..dd794f57a 100644
--- a/doc/language_issues.it
+++ b/doc/language_issues.it
@@ -940,13 +940,13 @@ WARNING: untranslated string: dangerous = Dangerous
WARNING: untranslated string: default IP address = Default IP Address
WARNING: untranslated string: desired = Desired
WARNING: untranslated string: dh = Diffie-Hellman-Parameter
-WARNING: untranslated string: dh parameter = unknown string
WARNING: untranslated string: dhcp deny known clients: = Deny known clients:
WARNING: untranslated string: dhcp dns enable update = Enable DNS Update (RFC2136):
WARNING: untranslated string: dhcp dns key name = Key Name
WARNING: untranslated string: dhcp dns update = DNS Update
WARNING: untranslated string: dhcp dns update algo = Algorithm
WARNING: untranslated string: dhcp dns update secret = Secret
+WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
WARNING: untranslated string: dhcp valid range required when deny known clients checked = Valid range required when "Deny known clients:" is checked
WARNING: untranslated string: disable = Disable
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index 14a7b420e..4f100abd2 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -943,12 +943,12 @@ WARNING: untranslated string: default = Default
WARNING: untranslated string: default IP address = Default IP Address
WARNING: untranslated string: desired = Desired
WARNING: untranslated string: dh = Diffie-Hellman-Parameter
-WARNING: untranslated string: dh parameter = unknown string
WARNING: untranslated string: dhcp dns enable update = Enable DNS Update (RFC2136):
WARNING: untranslated string: dhcp dns key name = Key Name
WARNING: untranslated string: dhcp dns update = DNS Update
WARNING: untranslated string: dhcp dns update algo = Algorithm
WARNING: untranslated string: dhcp dns update secret = Secret
+WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
WARNING: untranslated string: disable = Disable
WARNING: untranslated string: disconnected = Disconnected
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index a53a208d9..e91e62c5b 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -915,13 +915,13 @@ WARNING: untranslated string: default IP address = Default IP Address
WARNING: untranslated string: desired = Desired
WARNING: untranslated string: details = Details
WARNING: untranslated string: dh = Diffie-Hellman-Parameter
-WARNING: untranslated string: dh parameter = unknown string
WARNING: untranslated string: dhcp deny known clients: = Deny known clients:
WARNING: untranslated string: dhcp dns enable update = Enable DNS Update (RFC2136):
WARNING: untranslated string: dhcp dns key name = Key Name
WARNING: untranslated string: dhcp dns update = DNS Update
WARNING: untranslated string: dhcp dns update algo = Algorithm
WARNING: untranslated string: dhcp dns update secret = Secret
+WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
WARNING: untranslated string: dhcp valid range required when deny known clients checked = Valid range required when "Deny known clients:" is checked
WARNING: untranslated string: disable = Disable
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index c5dc1aa61..7dd1a63d7 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -911,13 +911,13 @@ WARNING: untranslated string: default IP address = Default IP Address
WARNING: untranslated string: desired = Desired
WARNING: untranslated string: details = Details
WARNING: untranslated string: dh = Diffie-Hellman-Parameter
-WARNING: untranslated string: dh parameter = unknown string
WARNING: untranslated string: dhcp deny known clients: = Deny known clients:
WARNING: untranslated string: dhcp dns enable update = Enable DNS Update (RFC2136):
WARNING: untranslated string: dhcp dns key name = Key Name
WARNING: untranslated string: dhcp dns update = DNS Update
WARNING: untranslated string: dhcp dns update algo = Algorithm
WARNING: untranslated string: dhcp dns update secret = Secret
+WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
WARNING: untranslated string: dhcp valid range required when deny known clients checked = Valid range required when "Deny known clients:" is checked
WARNING: untranslated string: disable = Disable
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index 552082a96..3443b1f1a 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -926,8 +926,8 @@ WARNING: untranslated string: dangerous = Dangerous
WARNING: untranslated string: default IP address = Default IP Address
WARNING: untranslated string: desired = Desired
WARNING: untranslated string: dh = Diffie-Hellman-Parameter
-WARNING: untranslated string: dh parameter = unknown string
WARNING: untranslated string: dhcp deny known clients: = Deny known clients:
+WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
WARNING: untranslated string: dhcp valid range required when deny known clients checked = Valid range required when "Deny known clients:" is checked
WARNING: untranslated string: disable = Disable
diff --git a/doc/language_missings b/doc/language_missings
index 65d38b422..78b9e8a2d 100644
--- a/doc/language_missings
+++ b/doc/language_missings
@@ -47,6 +47,7 @@
< could not connect to www ipfire org
< cryptographic settings
< desired
+< dhcp fixed ip address in dynamic range
< dhcp server disabled on blue interface
< dhcp server enabled on blue interface
< disable
@@ -102,6 +103,7 @@
< access point name is required
< addon
< cpu frequency
+< dhcp fixed ip address in dynamic range
< dns servers
< hardware vulnerabilities
< invalid ip or hostname
@@ -115,18 +117,12 @@
< access point name
< access point name is invalid
< access point name is required
-< advproxy errmsg invalid url
< ansi t1.483
< bewan adsl pci st
< bewan adsl usb
-< dh
-< email recipient invalid
+< dhcp fixed ip address in dynamic range
< g.dtm
< g.lite
-< guaranteed bandwidth
-< retbleed
-< service boot setting unavailable
-< show dh
< upload fcdsl.o
############################################################################
# Checking cgi-bin translations for language: it #
@@ -252,6 +248,7 @@
< dhcp dns update
< dhcp dns update algo
< dhcp dns update secret
+< dhcp fixed ip address in dynamic range
< dhcp make fixed lease
< dhcp valid range required when deny known clients checked
< disable
@@ -756,6 +753,7 @@
< dhcp dns update
< dhcp dns update algo
< dhcp dns update secret
+< dhcp fixed ip address in dynamic range
< dhcp make fixed lease
< disable
< Disabled
@@ -1353,6 +1351,7 @@
< dhcp dns update
< dhcp dns update algo
< dhcp dns update secret
+< dhcp fixed ip address in dynamic range
< dhcp make fixed lease
< dhcp valid range required when deny known clients checked
< disable
@@ -2330,6 +2329,7 @@
< dhcp dns update
< dhcp dns update algo
< dhcp dns update secret
+< dhcp fixed ip address in dynamic range
< dhcp make fixed lease
< dhcp valid range required when deny known clients checked
< disable
@@ -3173,6 +3173,7 @@
< desired
< dh
< dhcp deny known clients:
+< dhcp fixed ip address in dynamic range
< dhcp make fixed lease
< dhcp valid range required when deny known clients checked
< disable
diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi
index 4d4c21a7f..28b00215c 100644
--- a/html/cgi-bin/dhcp.cgi
+++ b/html/cgi-bin/dhcp.cgi
@@ -1021,8 +1021,9 @@ my $ipdup = 0;
my %ipinuse = ();
my %macdupl = (); # Duplicate MACs have to be on different subnets
my %ipoutside = ();
+my %ipinrange = ();
-# mark duplicate ip or duplicate MAC
+# mark duplicate IP, duplicate MAC or IP in dynamic range
foreach my $line (@current2) {
my @temp = split(/\,/,$line);
$macdupl{$temp[0]} += 1;
@@ -1033,14 +1034,21 @@ foreach my $line (@current2) {
if ($ipinuse{$temp[1]} > 1) {
$ipdup = 1; # Flag up duplicates for use later
}
- # Mark IP addresses outwith known subnets
$ipoutside{$temp[1]} = 1;
+ $ipinrange{$temp[1]} = 0;
foreach my $itf (@ITFs) {
- if ( &General::IpInSubnet($temp[1],
- $netsettings{"${itf}_NETADDRESS"},
- $netsettings{"${itf}_NETMASK"})) {
- $ipoutside{$temp[1]} = 0;
- }
+ # Mark IP addresses outwith known subnets
+ if ( &General::IpInSubnet($temp[1],
+ $netsettings{"${itf}_NETADDRESS"},
+ $netsettings{"${itf}_NETMASK"})) {
+ $ipoutside{$temp[1]} = 0;
+ }
+ # Mark IP addresses that overlap with dynamic range
+ if (&Network::ip_address_in_range($temp[1],
+ $dhcpsettings{"START_ADDR_${itf}"},
+ $dhcpsettings{"END_ADDR_${itf}"})) {
+ $ipinrange{$temp[1]} = 1;
+ }
}
}
@@ -1094,6 +1102,9 @@ foreach my $line (@current2) {
if ($ipoutside{$temp[1]} > 0) {
$TAG4 = "class='cell-orange'" if ($dhcpsettings{'KEY2'} ne $key);
}
+ if ($ipinrange{$temp[1]} > 0) {
+ $TAG4 = "class='cell-red'" if ($dhcpsettings{'KEY2'} ne $key);
+ }
print <<END
<td align='center' $col>$TAG2$temp[0]$TAG3</td>
@@ -1156,6 +1167,8 @@ print <<END
<td> </td>
<td> </td>
<td class='base cell-orange'>$Lang::tr{'ip address outside subnets'}</td>
+ <td>  </td>
+ <td class='base cell-red'>$Lang::tr{'dhcp fixed ip address in dynamic range'}</td>
<td> </td>
<td> </td>
$dup
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index 80753b841..5a72f53b8 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -827,6 +827,7 @@
'dhcp dns update' => 'DNS Update',
'dhcp dns update algo' => 'Algorithm',
'dhcp dns update secret' => 'Secret',
+'dhcp fixed ip address in dynamic range' => 'Fixed IP Address in dynamic range',
'dhcp fixed lease err1' => 'For a fix lease you have to enter the MAC address or the hostname, or you enter both.',
'dhcp fixed lease help1' => 'IP Addresses might be entered as FQDN',
'dhcp make fixed lease' => 'Add to fix leases',
--
2.39.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css
2023-03-02 14:11 [PATCH v2 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css Adolf Belka
2023-03-02 14:11 ` [PATCH v2 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red Adolf Belka
@ 2023-03-03 18:11 ` Bernhard Bitsch
1 sibling, 0 replies; 4+ messages in thread
From: Bernhard Bitsch @ 2023-03-03 18:11 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 4594 bytes --]
Reviewed-by: Bernhard Bitsch <bbitsch(a)ipfire.org>
Tested-by: Bernhard Bitsch <bbitsch(a)ipfire.org>
Am 02.03.2023 um 15:11 schrieb Adolf Belka:
> - This v2 version moves the extraHead variable to header.pl as many of the css values
> will be used in many other WUI cgi pages so makes sense to not define anew in every
> location using the bgcolor or other colour variables.
> - I will submit patches to follow the same approach in all other WUI cgi pages once this
> has been submitted into next
> - bgcolor was deprecated in HTML 4.01 and is not supported by HTML 5
> - The orange colour for IP's that are outside the IPFire green and blue subnets does not
> work on any browser I am using.
> - I used the CSS approach that @Leo used in the Zone Configuration cgi page
> - This patch changes all existing bgcolor entries to the css based background-color
> - Tested on my vm testbed and confirmed to work. The Orange colour for IP's outside of
> the subnet now shows up.
>
> Fixes: Bug#10629
> Tested-by: Adolf Belka <adolf.belka(a)ipfire.org>
> Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
> ---
> config/cfgroot/header.pl | 17 +++++++++++++++++
> html/cgi-bin/dhcp.cgi | 23 ++++++++++++-----------
> 2 files changed, 29 insertions(+), 11 deletions(-)
>
> diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl
> index 3956d80a1..b25f83e26 100644
> --- a/config/cfgroot/header.pl
> +++ b/config/cfgroot/header.pl
> @@ -41,6 +41,23 @@ $Header::colourvpn = '#990099';
> $Header::colourerr = '#FF0000';
> $Header::viewsize = 150;
> $Header::errormessage = '';
> +$Header::extraHead = <<END
> +<style>
> + .row-color20 {
> + background-color: $color{'color20'};
> + }
> + .row-color22 {
> + background-color: $color{'color22'};
> + }
> + .row-colouryellow {
> + background-color: $Header::colouryellow;
> + }
> + .cell-orange {
> + background-color: orange;
> + }
> +</style>
> +END
> +;
> my %menuhash = ();
> my $menu = \%menuhash;
> %settings = ();
> diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi
> index 125713285..4d4c21a7f 100644
> --- a/html/cgi-bin/dhcp.cgi
> +++ b/html/cgi-bin/dhcp.cgi
> @@ -547,7 +547,8 @@ if ($dhcpsettings{'ACTION'} eq '' ) { # First launch from GUI
> $dhcpsettings{'ADVOPT_ENABLED'} = 'on';
> }
>
> -&Header::openpage($Lang::tr{'dhcp configuration'}, 1, '');
> +### START PAGE ###
> +&Header::openpage($Lang::tr{'dhcp configuration'}, 1, $Header::extraHead);
> &Header::openbigbox('100%', 'left', '', $errormessage);
>
> if ($errormessage) {
> @@ -843,11 +844,11 @@ foreach my $line (@current1) {
> }
>
> if ($dhcpsettings{'KEY1'} eq $key) {
> - print "<tr bgcolor='${Header::colouryellow}'>";
> + print "<tr class='row-colouryellow'>";
> } elsif ($key % 2) {
> - print "<tr bgcolor='$color{'color22'}'>";
> + print "<tr class='row-color22'>";
> } else {
> - print "<tr bgcolor='$color{'color20'}'>";
> + print "<tr class='row-color20'>";
> }
>
> print <<END
> @@ -1069,13 +1070,13 @@ foreach my $line (@current2) {
>
> if ($dhcpsettings{'KEY2'} eq $key) {
> print "<tr>";
> - $col="bgcolor='${Header::colouryellow}'";
> + $col="class='row-colouryellow'";
> } elsif ($key % 2) {
> print "<tr>";
> - $col="bgcolor='$color{'color20'}'";
> + $col="class='row-color20'";
> } else {
> print "<tr>";
> - $col="bgcolor='$color{'color22'}'";
> + $col="class='row-color22'";
> }
> my $TAG0 = '';
> my $TAG1 = '';
> @@ -1091,12 +1092,12 @@ foreach my $line (@current2) {
> $TAG3 = '</b>';
> }
> if ($ipoutside{$temp[1]} > 0) {
> - $TAG4 = "bgcolor='orange'" if ($dhcpsettings{'KEY2'} ne $key);
> + $TAG4 = "class='cell-orange'" if ($dhcpsettings{'KEY2'} ne $key);
> }
>
> print <<END
> <td align='center' $col>$TAG2$temp[0]$TAG3</td>
> -<td align='center' $col $TAG4>$TAG0$temp[1]$TAG1</td>
> +<td align='center' $TAG4 $col>$TAG0$temp[1]$TAG1</td>
> <td align='center' $col>$temp[6] </td>
> <td align='center' $col>$temp[3] </td>
> <td align='center' $col>$temp[4] </td>
> @@ -1153,8 +1154,8 @@ print <<END
> </tr>
> <tr>
> <td> </td>
> - <td bgcolor='orange'> </td>
> - <td class='base'>$Lang::tr{'ip address outside subnets'}</td>
> + <td> </td>
> + <td class='base cell-orange'>$Lang::tr{'ip address outside subnets'}</td>
> <td> </td>
> <td> </td>
> $dup
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red
2023-03-02 14:11 ` [PATCH v2 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red Adolf Belka
@ 2023-03-03 18:12 ` Bernhard Bitsch
0 siblings, 0 replies; 4+ messages in thread
From: Bernhard Bitsch @ 2023-03-03 18:12 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 23300 bytes --]
Reviewed-by: Bernhard Bitsch <bbitsch(a)ipfire.org>
Tested-by: Bernhard Bitsch <bbitsch(a)ipfire.org>
Am 02.03.2023 um 15:11 schrieb Adolf Belka:
> - This v2 patch has moved the extraHead variable into header.pl
> - This patch marks all IP's that are in the Fixed list but are also in the dynamic range
> that has been defined, in red.
> - Additional function created to check if an ip address is in a defined range.
> - Added an additional key item under the Fixed Leases table for Fixed IP in dynamic range
> - Added line to English Language file for this key item.
> - ./make lang run before commit.
> - Tested in vm testbed and confirmed that any ip address in the Fixed Leases table that
> is in the defined dynamic range is highlighted in red
> - This uses the css background-color appoach from the first patch in this set.
> - This patch only highlights those IP's that overlap in red but does nothing more. So a
> user can still create new ones if they want but they will all show up in red.
> - This patch flags up if people are doing things that they shouldn't be doing but allows
> them to continue doing so without changing anything if they don't want to and so will
> not break existing setups.
>
> Fixes: Bug#10629
> Tested-by: Adolf Belka <adolf.belka(a)ipfire.org>
> Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
> ---
> config/cfgroot/header.pl | 3 +++
> config/cfgroot/network-functions.pl | 24 ++++++++++++++++++++++++
> doc/language_issues.de | 2 +-
> doc/language_issues.en | 2 +-
> doc/language_issues.es | 2 ++
> doc/language_issues.fr | 15 ++++++---------
> doc/language_issues.it | 2 +-
> doc/language_issues.nl | 2 +-
> doc/language_issues.pl | 2 +-
> doc/language_issues.ru | 2 +-
> doc/language_issues.tr | 2 +-
> doc/language_missings | 15 ++++++++-------
> html/cgi-bin/dhcp.cgi | 27 ++++++++++++++++++++-------
> langs/en/cgi-bin/en.pl | 1 +
> 14 files changed, 71 insertions(+), 30 deletions(-)
>
> diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl
> index b25f83e26..cd56e574f 100644
> --- a/config/cfgroot/header.pl
> +++ b/config/cfgroot/header.pl
> @@ -54,6 +54,9 @@ $Header::extraHead = <<END
> }
> .cell-orange {
> background-color: orange;
> + }
> + .cell-red {
> + background-color: red;
> }
> </style>
> END
> diff --git a/config/cfgroot/network-functions.pl b/config/cfgroot/network-functions.pl
> index 4ac6d8670..7b38cfac7 100644
> --- a/config/cfgroot/network-functions.pl
> +++ b/config/cfgroot/network-functions.pl
> @@ -307,6 +307,24 @@ sub ip_address_in_network($$) {
> return (($address_bin >= $network_bin) && ($address_bin <= $broadcast_bin));
> }
>
> +# Returns True if $ipaddress is within $ipstart and $ipend range.
> +sub ip_address_in_range($$) {
> + my $ipaddress = shift;
> + my $ipstart = shift;
> + my $ipend = shift;
> +
> + my $ipaddress_bin = &ip2bin($ipaddress);
> + return undef unless (defined $ipaddress_bin);
> +
> + my $ipstart_bin = &ip2bin($ipstart);
> + return undef unless (defined $ipstart_bin);
> +
> + my $ipend_bin = &ip2bin($ipend);
> + return undef unless (defined $ipend_bin);
> +
> + return (($ipaddress_bin >= $ipstart_bin) && ($ipaddress_bin <= $ipend_bin));
> +}
> +
> sub setup_upstream_proxy() {
> my %proxysettings = ();
> &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);
> @@ -666,6 +684,12 @@ sub testsuite() {
> $result = &ip_address_in_network("192.168.30.11", "0.0.0.0/8");
> assert('ip_address_in_network("192.168.30.11", "0.0.0.0/8")', !$result);
>
> + $result = &ip_address_in_range("192.168.30.11", "192.168.30.10", "192.168.30.20");
> + assert('ip_address_in_range("192.168.30.11", "192.168.30.10", "192.168.30.20")', $result);
> +
> + $result = &ip_address_in_range("192.168.30.21", "192.168.30.10", "192.168.30.20");
> + assert('ip_address_in_range("192.168.30.21", "192.168.30.10", "192.168.30.20")', !$result);
> +
> print "Testsuite completed successfully!\n";
>
> return 0;
> diff --git a/doc/language_issues.de b/doc/language_issues.de
> index 88c7879be..392416192 100644
> --- a/doc/language_issues.de
> +++ b/doc/language_issues.de
> @@ -883,7 +883,7 @@ WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
> WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
> WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
> WARNING: untranslated string: desired = Desired
> -WARNING: untranslated string: dh parameter = unknown string
> +WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
> WARNING: untranslated string: disable = Disable
> WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
> WARNING: untranslated string: enable = Enable
> diff --git a/doc/language_issues.en b/doc/language_issues.en
> index c29e3bed6..08fda35b7 100644
> --- a/doc/language_issues.en
> +++ b/doc/language_issues.en
> @@ -574,7 +574,6 @@ WARNING: untranslated string: details = Details
> WARNING: untranslated string: device = Device
> WARNING: untranslated string: devices on blue = Devices on BLUE
> WARNING: untranslated string: dh = Diffie-Hellman-Parameter
> -WARNING: untranslated string: dh parameter = unknown string
> WARNING: untranslated string: dhcp advopt add = Add a DHCP option
> WARNING: untranslated string: dhcp advopt added = DHCP option added
> WARNING: untranslated string: dhcp advopt blank value = DHCP Option value cannot be empty.
> @@ -601,6 +600,7 @@ WARNING: untranslated string: dhcp dns key name = Key Name
> WARNING: untranslated string: dhcp dns update = DNS Update
> WARNING: untranslated string: dhcp dns update algo = Algorithm
> WARNING: untranslated string: dhcp dns update secret = Secret
> +WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
> WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
> WARNING: untranslated string: dhcp server = DHCP Server
> WARNING: untranslated string: dhcp server disabled = DHCP server disabled. Stopped.
> diff --git a/doc/language_issues.es b/doc/language_issues.es
> index 0bd390d5d..ffe423bd1 100644
> --- a/doc/language_issues.es
> +++ b/doc/language_issues.es
> @@ -228,6 +228,7 @@ WARNING: translation string unused: dh key move failed
> WARNING: translation string unused: dh key warn
> WARNING: translation string unused: dh key warn1
> WARNING: translation string unused: dh name is invalid
> +WARNING: translation string unused: dh parameter
> WARNING: translation string unused: dhcp base ip fixed lease
> WARNING: translation string unused: dhcp create fixed leases
> WARNING: translation string unused: dhcp fixed lease err1
> @@ -943,6 +944,7 @@ WARNING: untranslated string: access point name is invalid = Access Point Name i
> WARNING: untranslated string: access point name is required = Access Point Name is required
> WARNING: untranslated string: bytes = unknown string
> WARNING: untranslated string: cpu frequency = CPU frequency
> +WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
> WARNING: untranslated string: dns servers = DNS Servers
> WARNING: untranslated string: error message = unknown string
> WARNING: untranslated string: fwhost cust locationgrp = unknown string
> diff --git a/doc/language_issues.fr b/doc/language_issues.fr
> index 56d69d86e..cb06f0ab3 100644
> --- a/doc/language_issues.fr
> +++ b/doc/language_issues.fr
> @@ -392,7 +392,6 @@ WARNING: translation string unused: generatepolicy
> WARNING: translation string unused: generatereport
> WARNING: translation string unused: genkey
> WARNING: translation string unused: green interface
> -WARNING: translation string unused: guaranteed bandwith
> WARNING: translation string unused: guest ok
> WARNING: translation string unused: gz with key
> WARNING: translation string unused: harddisk temperature graphs
> @@ -404,6 +403,7 @@ WARNING: translation string unused: host deny
> WARNING: translation string unused: hostname and domain already in use
> WARNING: translation string unused: hour-graph
> WARNING: translation string unused: hours2
> +WARNING: translation string unused: ibod for dual isdn only
> WARNING: translation string unused: icmp selected but no type
> WARNING: translation string unused: icmp type
> WARNING: translation string unused: id
> @@ -453,6 +453,10 @@ WARNING: translation string unused: ipblocklist category scanner
> WARNING: translation string unused: ipfire side
> WARNING: translation string unused: ipsec no connections
> WARNING: translation string unused: iptable rules
> +WARNING: translation string unused: isdn
> +WARNING: translation string unused: isdn settings
> +WARNING: translation string unused: isdn1
> +WARNING: translation string unused: isdn2
> WARNING: translation string unused: javascript menu error1
> WARNING: translation string unused: javascript menu error2
> WARNING: translation string unused: kernel version
> @@ -908,15 +912,11 @@ WARNING: translation string unused: zoneconf val zoneslave amount error
> 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
> -WARNING: untranslated string: advproxy errmsg invalid url = Invalid URL
> WARNING: untranslated string: core notice 3 = available.
> -WARNING: untranslated string: dh = Diffie-Hellman-Parameter
> -WARNING: untranslated string: dh parameter = unknown string
> -WARNING: untranslated string: email recipient invalid = Invalid email recipient
> +WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
> WARNING: untranslated string: error message = unknown string
> WARNING: untranslated string: fwhost cust locationgrp = unknown string
> WARNING: untranslated string: fwhost err hostip = unknown string
> -WARNING: untranslated string: guaranteed bandwidth = Guaranteed bandwidth
> WARNING: untranslated string: guardian block a host = unknown string
> WARNING: untranslated string: guardian block httpd brute-force = unknown string
> WARNING: untranslated string: guardian block ssh brute-force = unknown string
> @@ -947,9 +947,6 @@ WARNING: untranslated string: guardian logtarget_syslog = unknown string
> WARNING: untranslated string: guardian no entries = unknown string
> WARNING: untranslated string: guardian service = unknown string
> WARNING: untranslated string: pakfire ago = ago.
> -WARNING: untranslated string: retbleed = Retbleed
> WARNING: untranslated string: route config changed = unknown string
> WARNING: untranslated string: routing config added = unknown string
> WARNING: untranslated string: routing config changed = unknown string
> -WARNING: untranslated string: service boot setting unavailable = No valid runlevel symlink was found for the initscript of this service.
> -WARNING: untranslated string: show dh = Show Diffie-Hellman parameters
> diff --git a/doc/language_issues.it b/doc/language_issues.it
> index 9999f947c..dd794f57a 100644
> --- a/doc/language_issues.it
> +++ b/doc/language_issues.it
> @@ -940,13 +940,13 @@ WARNING: untranslated string: dangerous = Dangerous
> WARNING: untranslated string: default IP address = Default IP Address
> WARNING: untranslated string: desired = Desired
> WARNING: untranslated string: dh = Diffie-Hellman-Parameter
> -WARNING: untranslated string: dh parameter = unknown string
> WARNING: untranslated string: dhcp deny known clients: = Deny known clients:
> WARNING: untranslated string: dhcp dns enable update = Enable DNS Update (RFC2136):
> WARNING: untranslated string: dhcp dns key name = Key Name
> WARNING: untranslated string: dhcp dns update = DNS Update
> WARNING: untranslated string: dhcp dns update algo = Algorithm
> WARNING: untranslated string: dhcp dns update secret = Secret
> +WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
> WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
> WARNING: untranslated string: dhcp valid range required when deny known clients checked = Valid range required when "Deny known clients:" is checked
> WARNING: untranslated string: disable = Disable
> diff --git a/doc/language_issues.nl b/doc/language_issues.nl
> index 14a7b420e..4f100abd2 100644
> --- a/doc/language_issues.nl
> +++ b/doc/language_issues.nl
> @@ -943,12 +943,12 @@ WARNING: untranslated string: default = Default
> WARNING: untranslated string: default IP address = Default IP Address
> WARNING: untranslated string: desired = Desired
> WARNING: untranslated string: dh = Diffie-Hellman-Parameter
> -WARNING: untranslated string: dh parameter = unknown string
> WARNING: untranslated string: dhcp dns enable update = Enable DNS Update (RFC2136):
> WARNING: untranslated string: dhcp dns key name = Key Name
> WARNING: untranslated string: dhcp dns update = DNS Update
> WARNING: untranslated string: dhcp dns update algo = Algorithm
> WARNING: untranslated string: dhcp dns update secret = Secret
> +WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
> WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
> WARNING: untranslated string: disable = Disable
> WARNING: untranslated string: disconnected = Disconnected
> diff --git a/doc/language_issues.pl b/doc/language_issues.pl
> index a53a208d9..e91e62c5b 100644
> --- a/doc/language_issues.pl
> +++ b/doc/language_issues.pl
> @@ -915,13 +915,13 @@ WARNING: untranslated string: default IP address = Default IP Address
> WARNING: untranslated string: desired = Desired
> WARNING: untranslated string: details = Details
> WARNING: untranslated string: dh = Diffie-Hellman-Parameter
> -WARNING: untranslated string: dh parameter = unknown string
> WARNING: untranslated string: dhcp deny known clients: = Deny known clients:
> WARNING: untranslated string: dhcp dns enable update = Enable DNS Update (RFC2136):
> WARNING: untranslated string: dhcp dns key name = Key Name
> WARNING: untranslated string: dhcp dns update = DNS Update
> WARNING: untranslated string: dhcp dns update algo = Algorithm
> WARNING: untranslated string: dhcp dns update secret = Secret
> +WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
> WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
> WARNING: untranslated string: dhcp valid range required when deny known clients checked = Valid range required when "Deny known clients:" is checked
> WARNING: untranslated string: disable = Disable
> diff --git a/doc/language_issues.ru b/doc/language_issues.ru
> index c5dc1aa61..7dd1a63d7 100644
> --- a/doc/language_issues.ru
> +++ b/doc/language_issues.ru
> @@ -911,13 +911,13 @@ WARNING: untranslated string: default IP address = Default IP Address
> WARNING: untranslated string: desired = Desired
> WARNING: untranslated string: details = Details
> WARNING: untranslated string: dh = Diffie-Hellman-Parameter
> -WARNING: untranslated string: dh parameter = unknown string
> WARNING: untranslated string: dhcp deny known clients: = Deny known clients:
> WARNING: untranslated string: dhcp dns enable update = Enable DNS Update (RFC2136):
> WARNING: untranslated string: dhcp dns key name = Key Name
> WARNING: untranslated string: dhcp dns update = DNS Update
> WARNING: untranslated string: dhcp dns update algo = Algorithm
> WARNING: untranslated string: dhcp dns update secret = Secret
> +WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
> WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
> WARNING: untranslated string: dhcp valid range required when deny known clients checked = Valid range required when "Deny known clients:" is checked
> WARNING: untranslated string: disable = Disable
> diff --git a/doc/language_issues.tr b/doc/language_issues.tr
> index 552082a96..3443b1f1a 100644
> --- a/doc/language_issues.tr
> +++ b/doc/language_issues.tr
> @@ -926,8 +926,8 @@ WARNING: untranslated string: dangerous = Dangerous
> WARNING: untranslated string: default IP address = Default IP Address
> WARNING: untranslated string: desired = Desired
> WARNING: untranslated string: dh = Diffie-Hellman-Parameter
> -WARNING: untranslated string: dh parameter = unknown string
> WARNING: untranslated string: dhcp deny known clients: = Deny known clients:
> +WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
> WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
> WARNING: untranslated string: dhcp valid range required when deny known clients checked = Valid range required when "Deny known clients:" is checked
> WARNING: untranslated string: disable = Disable
> diff --git a/doc/language_missings b/doc/language_missings
> index 65d38b422..78b9e8a2d 100644
> --- a/doc/language_missings
> +++ b/doc/language_missings
> @@ -47,6 +47,7 @@
> < could not connect to www ipfire org
> < cryptographic settings
> < desired
> +< dhcp fixed ip address in dynamic range
> < dhcp server disabled on blue interface
> < dhcp server enabled on blue interface
> < disable
> @@ -102,6 +103,7 @@
> < access point name is required
> < addon
> < cpu frequency
> +< dhcp fixed ip address in dynamic range
> < dns servers
> < hardware vulnerabilities
> < invalid ip or hostname
> @@ -115,18 +117,12 @@
> < access point name
> < access point name is invalid
> < access point name is required
> -< advproxy errmsg invalid url
> < ansi t1.483
> < bewan adsl pci st
> < bewan adsl usb
> -< dh
> -< email recipient invalid
> +< dhcp fixed ip address in dynamic range
> < g.dtm
> < g.lite
> -< guaranteed bandwidth
> -< retbleed
> -< service boot setting unavailable
> -< show dh
> < upload fcdsl.o
> ############################################################################
> # Checking cgi-bin translations for language: it #
> @@ -252,6 +248,7 @@
> < dhcp dns update
> < dhcp dns update algo
> < dhcp dns update secret
> +< dhcp fixed ip address in dynamic range
> < dhcp make fixed lease
> < dhcp valid range required when deny known clients checked
> < disable
> @@ -756,6 +753,7 @@
> < dhcp dns update
> < dhcp dns update algo
> < dhcp dns update secret
> +< dhcp fixed ip address in dynamic range
> < dhcp make fixed lease
> < disable
> < Disabled
> @@ -1353,6 +1351,7 @@
> < dhcp dns update
> < dhcp dns update algo
> < dhcp dns update secret
> +< dhcp fixed ip address in dynamic range
> < dhcp make fixed lease
> < dhcp valid range required when deny known clients checked
> < disable
> @@ -2330,6 +2329,7 @@
> < dhcp dns update
> < dhcp dns update algo
> < dhcp dns update secret
> +< dhcp fixed ip address in dynamic range
> < dhcp make fixed lease
> < dhcp valid range required when deny known clients checked
> < disable
> @@ -3173,6 +3173,7 @@
> < desired
> < dh
> < dhcp deny known clients:
> +< dhcp fixed ip address in dynamic range
> < dhcp make fixed lease
> < dhcp valid range required when deny known clients checked
> < disable
> diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi
> index 4d4c21a7f..28b00215c 100644
> --- a/html/cgi-bin/dhcp.cgi
> +++ b/html/cgi-bin/dhcp.cgi
> @@ -1021,8 +1021,9 @@ my $ipdup = 0;
> my %ipinuse = ();
> my %macdupl = (); # Duplicate MACs have to be on different subnets
> my %ipoutside = ();
> +my %ipinrange = ();
>
> -# mark duplicate ip or duplicate MAC
> +# mark duplicate IP, duplicate MAC or IP in dynamic range
> foreach my $line (@current2) {
> my @temp = split(/\,/,$line);
> $macdupl{$temp[0]} += 1;
> @@ -1033,14 +1034,21 @@ foreach my $line (@current2) {
> if ($ipinuse{$temp[1]} > 1) {
> $ipdup = 1; # Flag up duplicates for use later
> }
> - # Mark IP addresses outwith known subnets
> $ipoutside{$temp[1]} = 1;
> + $ipinrange{$temp[1]} = 0;
> foreach my $itf (@ITFs) {
> - if ( &General::IpInSubnet($temp[1],
> - $netsettings{"${itf}_NETADDRESS"},
> - $netsettings{"${itf}_NETMASK"})) {
> - $ipoutside{$temp[1]} = 0;
> - }
> + # Mark IP addresses outwith known subnets
> + if ( &General::IpInSubnet($temp[1],
> + $netsettings{"${itf}_NETADDRESS"},
> + $netsettings{"${itf}_NETMASK"})) {
> + $ipoutside{$temp[1]} = 0;
> + }
> + # Mark IP addresses that overlap with dynamic range
> + if (&Network::ip_address_in_range($temp[1],
> + $dhcpsettings{"START_ADDR_${itf}"},
> + $dhcpsettings{"END_ADDR_${itf}"})) {
> + $ipinrange{$temp[1]} = 1;
> + }
> }
> }
>
> @@ -1094,6 +1102,9 @@ foreach my $line (@current2) {
> if ($ipoutside{$temp[1]} > 0) {
> $TAG4 = "class='cell-orange'" if ($dhcpsettings{'KEY2'} ne $key);
> }
> + if ($ipinrange{$temp[1]} > 0) {
> + $TAG4 = "class='cell-red'" if ($dhcpsettings{'KEY2'} ne $key);
> + }
>
> print <<END
> <td align='center' $col>$TAG2$temp[0]$TAG3</td>
> @@ -1156,6 +1167,8 @@ print <<END
> <td> </td>
> <td> </td>
> <td class='base cell-orange'>$Lang::tr{'ip address outside subnets'}</td>
> + <td>  </td>
> + <td class='base cell-red'>$Lang::tr{'dhcp fixed ip address in dynamic range'}</td>
> <td> </td>
> <td> </td>
> $dup
> diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
> index 80753b841..5a72f53b8 100644
> --- a/langs/en/cgi-bin/en.pl
> +++ b/langs/en/cgi-bin/en.pl
> @@ -827,6 +827,7 @@
> 'dhcp dns update' => 'DNS Update',
> 'dhcp dns update algo' => 'Algorithm',
> 'dhcp dns update secret' => 'Secret',
> +'dhcp fixed ip address in dynamic range' => 'Fixed IP Address in dynamic range',
> 'dhcp fixed lease err1' => 'For a fix lease you have to enter the MAC address or the hostname, or you enter both.',
> 'dhcp fixed lease help1' => 'IP Addresses might be entered as FQDN',
> 'dhcp make fixed lease' => 'Add to fix leases',
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-03-03 18:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-02 14:11 [PATCH v2 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css Adolf Belka
2023-03-02 14:11 ` [PATCH v2 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red Adolf Belka
2023-03-03 18:12 ` Bernhard Bitsch
2023-03-03 18:11 ` [PATCH v2 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css Bernhard Bitsch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox