}
.cell-orange {
background-color: orange;
+ }
+ .cell-red {
+ background-color: red;
}
</style>
END
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);
$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;
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
< 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
< access point name is required
< addon
< cpu frequency
+< dhcp fixed ip address in dynamic range
< dns servers
< hardware vulnerabilities
< invalid ip or hostname
< 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 #
< 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
< dhcp dns update
< dhcp dns update algo
< dhcp dns update secret
+< dhcp fixed ip address in dynamic range
< dhcp make fixed lease
< disable
< Disabled
< 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
< 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
< 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
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;
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;
+ }
}
}
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>
<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
'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',