diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index 8df1e389d0..a67b0e38e7 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -1334,6 +1334,13 @@ function generate_user_filter_rule($rule, $ngcounter) { $src = "{$pppoesa}/{$pppoesn}"; break; } + /* check for opt$NUMip here */ + $matches = ""; + if (preg_match("/opt([0-9999])ip/", $rule['source']['network'], $matches)) { + $optnum = $matches[0]; + $real_int = convert_friendly_interface_to_real_interface_name("opt{$optnum}"); + $dst = find_interface_ip($real_int); + } if (isset($rule['source']['not'])) $src = "!{$src}"; } } else if ($rule['source']['address']) { @@ -1426,6 +1433,13 @@ function generate_user_filter_rule($rule, $ngcounter) { $dst = "{$ppoesa}/{$pppoesn}"; break; } + /* check for opt$NUMip here */ + $matches = ""; + if (preg_match("/opt([0-9999])ip/", $rule['destination']['network'], $matches)) { + $optnum = $matches[0]; + $real_int = convert_friendly_interface_to_real_interface_name("opt{$optnum}"); + $dst = find_interface_ip($real_int); + } if (isset($rule['destination']['not'])) $dst = " !{$dst}"; } } else if ($rule['destination']['address']) { diff --git a/usr/local/www/firewall_rules_edit.php b/usr/local/www/firewall_rules_edit.php index ec1e8d5d45..5d781e3a2e 100755 --- a/usr/local/www/firewall_rules_edit.php +++ b/usr/local/www/firewall_rules_edit.php @@ -567,6 +567,9 @@ include("head.inc"); +