MDL-14123 Full IPv6 support - replaced mnet ip_in_range() by standard ipv6 compatible address_in_subnet(); replaced $_SERVER['REMOTE_ADDR'] with standard getremoteaddr()
This commit is contained in:
@@ -34,13 +34,9 @@
|
||||
$in_range = false;
|
||||
if (!empty($test_ip_address)) {
|
||||
foreach($old_trusted_hosts as $host) {
|
||||
list($network, $mask) = explode('/', $host.'/');
|
||||
if (empty($network)) continue;
|
||||
if (strlen($mask) == 0) $mask = 32;
|
||||
|
||||
if (ip_in_range($test_ip_address, $network, $mask)) {
|
||||
if (address_in_subnet($test_ip_address, $host)) {
|
||||
$in_range = true;
|
||||
$validated_by = $network.'/'.$mask;
|
||||
$validated_by = $host;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,27 +412,6 @@ function mnet_generate_keypair($dn = null, $days=28) {
|
||||
return $keypair;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that an IP address falls within the given network/mask
|
||||
* ok for export
|
||||
*
|
||||
* @param string $address Dotted quad
|
||||
* @param string $network Dotted quad
|
||||
* @param string $mask A number, e.g. 16, 24, 32
|
||||
* @return bool
|
||||
*/
|
||||
function ip_in_range($address, $network, $mask) {
|
||||
$lnetwork = ip2long($network);
|
||||
$laddress = ip2long($address);
|
||||
|
||||
$binnet = str_pad( decbin($lnetwork),32,"0","STR_PAD_LEFT" );
|
||||
$firstpart = substr($binnet,0,$mask);
|
||||
|
||||
$binip = str_pad( decbin($laddress),32,"0","STR_PAD_LEFT" );
|
||||
$firstip = substr($binip,0,$mask);
|
||||
return(strcmp($firstpart,$firstip)==0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that a given function (or method) in an include file has been designated
|
||||
* ok for export
|
||||
|
||||
@@ -59,11 +59,7 @@ class mnet_remote_client extends mnet_peer {
|
||||
$trusted_hosts = explode(',', get_config('mnet', 'mnet_trusted_hosts'));
|
||||
|
||||
foreach($trusted_hosts as $host) {
|
||||
list($network, $mask) = explode('/', $host.'/');
|
||||
if (empty($network)) continue;
|
||||
if (strlen($mask) == 0) $mask = 32;
|
||||
|
||||
if (ip_in_range($_SERVER['REMOTE_ADDR'], $network, $mask)) {
|
||||
if (address_in_subnet(getremoteaddr(), $host)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user