mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-20 03:16:12 +00:00
filter: pass object in filter_core_get_port_alias to allow large sets of aliases
This commit is contained in:
parent
d5e7ad8792
commit
8691618bdd
@ -617,7 +617,8 @@ function filter_generate_aliases()
|
||||
}
|
||||
|
||||
$aliases .= "\n# User Aliases\n";
|
||||
foreach ((new \OPNsense\Firewall\Alias())->aliasIterator() as $aliased) {
|
||||
$aliasObject = new \OPNsense\Firewall\Alias();
|
||||
foreach ($aliasObject->aliasIterator() as $aliased) {
|
||||
switch ($aliased['type']) {
|
||||
case "urltable_ports":
|
||||
case "url_ports":
|
||||
@ -627,7 +628,7 @@ function filter_generate_aliases()
|
||||
file_notice(sprintf(gettext('URL port aliases types not supported [%s]'), $aliased['name']));
|
||||
break;
|
||||
case "port":
|
||||
$tmp_ports = implode(" ", filter_core_get_port_alias($aliased['name']));
|
||||
$tmp_ports = implode(" ", filter_core_get_port_alias($aliased['name'], array(), $aliasObject));
|
||||
$aliases .= "{$aliased['name']} = \"{ {$tmp_ports} }\"\n";
|
||||
break;
|
||||
default:
|
||||
|
||||
@ -150,16 +150,17 @@ function filter_core_get_antilockout()
|
||||
* @return array containing ports
|
||||
* @throws \OPNsense\Base\ModelException
|
||||
*/
|
||||
function filter_core_get_port_alias($aliasname, $aliases = array())
|
||||
function filter_core_get_port_alias($aliasname, $aliases = array(), $aliasObject=null)
|
||||
{
|
||||
$response = array();
|
||||
$aliases[] = $aliasname;
|
||||
foreach ((new \OPNsense\Firewall\Alias())->aliasIterator() as $aliased) {
|
||||
$aliasObject = $aliasObject == null ? (new \OPNsense\Firewall\Alias()) : $aliasObject;
|
||||
foreach ($aliasObject->aliasIterator() as $aliased) {
|
||||
if ($aliasname == $aliased['name'] && $aliased['type'] == 'port') {
|
||||
foreach (explode("\n", $aliased['content']) as $address) {
|
||||
if (is_alias($address)) {
|
||||
if (!in_array($address, $aliases)) {
|
||||
foreach (filter_core_get_port_alias($address, $aliases) as $port) {
|
||||
foreach (filter_core_get_port_alias($address, $aliases, $aliasObject) as $port) {
|
||||
if (!in_array($port, $response)) {
|
||||
$response[] = $port;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user