mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
When an alias contain hosts, add IPs and networks to filterdns too, otherwise you end up with a pre-defined and non-persistent table. Fixes #3939
This commit is contained in:
parent
87d4456cf4
commit
d9b05eb490
@ -476,6 +476,7 @@ function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddr
|
|||||||
global $aliastable, $filterdns;
|
global $aliastable, $filterdns;
|
||||||
|
|
||||||
$addresses = explode(" ", $alias);
|
$addresses = explode(" ", $alias);
|
||||||
|
$use_filterdns = false;
|
||||||
$finallist = "";
|
$finallist = "";
|
||||||
$builtlist = "";
|
$builtlist = "";
|
||||||
$urltable_nesting = "";
|
$urltable_nesting = "";
|
||||||
@ -506,8 +507,10 @@ function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddr
|
|||||||
$tmpline = filter_generate_nested_alias($name, $aliastable[$address], $aliasnesting, $aliasaddrnesting);
|
$tmpline = filter_generate_nested_alias($name, $aliastable[$address], $aliasnesting, $aliasaddrnesting);
|
||||||
} else if(!isset($aliasaddrnesting[$address])) {
|
} else if(!isset($aliasaddrnesting[$address])) {
|
||||||
if (!is_ipaddr($address) && !is_subnet($address) && !is_port($address) && !is_portrange($address) && is_hostname($address)) {
|
if (!is_ipaddr($address) && !is_subnet($address) && !is_port($address) && !is_portrange($address) && is_hostname($address)) {
|
||||||
if (!isset($filterdns["{$address}{$name}"]))
|
if (!isset($filterdns["{$address}{$name}"])) {
|
||||||
|
$use_filterdns = true;
|
||||||
$filterdns["{$address}{$name}"] = "pf {$address} {$name}\n";
|
$filterdns["{$address}{$name}"] = "pf {$address} {$name}\n";
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$aliasaddrnesting[$address] = $address;
|
$aliasaddrnesting[$address] = $address;
|
||||||
@ -521,6 +524,17 @@ function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddr
|
|||||||
$builtlist .= " {$tmpline}";
|
$builtlist .= " {$tmpline}";
|
||||||
}
|
}
|
||||||
$finallist .= $builtlist;
|
$finallist .= $builtlist;
|
||||||
|
|
||||||
|
if ($use_filterdns === true && !empty($finallist)) {
|
||||||
|
foreach (explode(" ", $finallist) as $address) {
|
||||||
|
if (empty($address))
|
||||||
|
continue;
|
||||||
|
if ((is_ipaddr($address) || is_subnet($address)) && !isset($filterdns["{$address}{$name}"]))
|
||||||
|
$filterdns["{$address}{$name}"] = "pf {$address} {$name}\n";
|
||||||
|
}
|
||||||
|
$finallist = '';
|
||||||
|
}
|
||||||
|
|
||||||
return $finallist;
|
return $finallist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user