* [PATCH 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css
@ 2023-02-13 17:55 Adolf Belka
2023-02-13 17:55 ` [PATCH 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red Adolf Belka
2023-02-13 21:42 ` [PATCH 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-02-13 17:55 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 3703 bytes --]
- 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.
Tested-by: Adolf Belka <adolf.belka(a)ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
---
html/cgi-bin/dhcp.cgi | 44 ++++++++++++++++++++++++++++++++-----------
1 file changed, 33 insertions(+), 11 deletions(-)
diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi
index 125713285..2d162b204 100644
--- a/html/cgi-bin/dhcp.cgi
+++ b/html/cgi-bin/dhcp.cgi
@@ -113,6 +113,27 @@ foreach my $itf (@ITFs) {
&General::readhash("${General::swroot}/time/settings", \%timesettings);
&General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
+###--- HTML HEAD ---###
+my $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
+;
+###--- END HTML HEAD ---###
+
+
#Get GUI values
&Header::getcgihash(\%dhcpsettings);
@@ -547,7 +568,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, $extraHead);
&Header::openbigbox('100%', 'left', '', $errormessage);
if ($errormessage) {
@@ -843,11 +865,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 +1091,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 +1113,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 +1175,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.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red
2023-02-13 17:55 [PATCH 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css Adolf Belka
@ 2023-02-13 17:55 ` Adolf Belka
2023-02-13 22:34 ` Bernhard Bitsch
2023-02-13 21:42 ` [PATCH 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-02-13 17:55 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 21915 bytes --]
- 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.
- I may come back at a later time with a further patch that allows IP's that overlap but
are in the existing leases file to continue being used and edited but prevents new IP's
that overlap from being created.
- 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.
Tested-by: Adolf Belka <adolf.belka(a)ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
---
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 | 30 ++++++++++++++++++++++-------
langs/en/cgi-bin/en.pl | 1 +
13 files changed, 71 insertions(+), 30 deletions(-)
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 2d162b204..1b1102932 100644
--- a/html/cgi-bin/dhcp.cgi
+++ b/html/cgi-bin/dhcp.cgi
@@ -127,6 +127,9 @@ my $extraHead = <<END
}
.cell-orange {
background-color: orange;
+ }
+ .cell-red {
+ background-color: red;
}
</style>
END
@@ -1042,8 +1045,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;
@@ -1054,14 +1058,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;
+ }
}
}
@@ -1115,6 +1126,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>
@@ -1177,6 +1191,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.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css
2023-02-13 17:55 [PATCH 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css Adolf Belka
2023-02-13 17:55 ` [PATCH 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red Adolf Belka
@ 2023-02-13 21:42 ` Bernhard Bitsch
1 sibling, 0 replies; 4+ messages in thread
From: Bernhard Bitsch @ 2023-02-13 21:42 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 4066 bytes --]
Reviewed-by: Bernhard Bitsch <bbitsch(a)ipfire.org>
Am 13.02.2023 um 18:55 schrieb Adolf Belka:
> - 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.
>
> Tested-by: Adolf Belka <adolf.belka(a)ipfire.org>
> Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
> ---
> html/cgi-bin/dhcp.cgi | 44 ++++++++++++++++++++++++++++++++-----------
> 1 file changed, 33 insertions(+), 11 deletions(-)
>
> diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi
> index 125713285..2d162b204 100644
> --- a/html/cgi-bin/dhcp.cgi
> +++ b/html/cgi-bin/dhcp.cgi
> @@ -113,6 +113,27 @@ foreach my $itf (@ITFs) {
> &General::readhash("${General::swroot}/time/settings", \%timesettings);
> &General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
>
> +###--- HTML HEAD ---###
> +my $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
> +;
> +###--- END HTML HEAD ---###
> +
> +
> #Get GUI values
> &Header::getcgihash(\%dhcpsettings);
>
> @@ -547,7 +568,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, $extraHead);
> &Header::openbigbox('100%', 'left', '', $errormessage);
>
> if ($errormessage) {
> @@ -843,11 +865,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 +1091,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 +1113,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 +1175,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 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red
2023-02-13 17:55 ` [PATCH 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red Adolf Belka
@ 2023-02-13 22:34 ` Bernhard Bitsch
0 siblings, 0 replies; 4+ messages in thread
From: Bernhard Bitsch @ 2023-02-13 22:34 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 23349 bytes --]
Thx for this patch.
It resolves a problem, which shows up from time to time.
It allows some freedom in defining fixed leases ( without interpretation
of sense ), but marks this exception of the 'IPFire philosophy'.
Bernhard
Reviewed-by: Bernhard Bitsch <bbitsch(a)ipfire.org>
Am 13.02.2023 um 18:55 schrieb Adolf Belka:
> - 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.
> - I may come back at a later time with a further patch that allows IP's that overlap but
> are in the existing leases file to continue being used and edited but prevents new IP's
> that overlap from being created.
> - 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.
>
> Tested-by: Adolf Belka <adolf.belka(a)ipfire.org>
> Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
> ---
> 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 | 30 ++++++++++++++++++++++-------
> langs/en/cgi-bin/en.pl | 1 +
> 13 files changed, 71 insertions(+), 30 deletions(-)
>
> 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 2d162b204..1b1102932 100644
> --- a/html/cgi-bin/dhcp.cgi
> +++ b/html/cgi-bin/dhcp.cgi
> @@ -127,6 +127,9 @@ my $extraHead = <<END
> }
> .cell-orange {
> background-color: orange;
> + }
> + .cell-red {
> + background-color: red;
> }
> </style>
> END
> @@ -1042,8 +1045,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;
> @@ -1054,14 +1058,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;
> + }
> }
> }
>
> @@ -1115,6 +1126,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>
> @@ -1177,6 +1191,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-02-13 22:34 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-13 17:55 [PATCH 1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css Adolf Belka
2023-02-13 17:55 ` [PATCH 2/2] dhcp.cgi: Fix bug#10629 - Highlight fixed IP's in dynamic range in red Adolf Belka
2023-02-13 22:34 ` Bernhard Bitsch
2023-02-13 21:42 ` [PATCH 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