diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index 479ec3ac58..6a6ecc6959 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -70,6 +70,14 @@ $reserved_table_names = array( "vpn_networks", "webConfiguratorlockout"); +function fix_rule_label($descr) { + $descr = str_replace('"', '', $descr); + if (strlen($descr) > 63) + return substr($descr, 0, 60) . "..."; + else + return $descr; +} + function is_bogonsv6_used() { global $config, $g; # Only use bogonsv6 table if IPv6 Allow is on, and at least 1 enabled interface also has "blockbogons" enabled. @@ -1955,7 +1963,7 @@ function filter_generate_user_rule_arr($rule) { $ret['rule'] = $line; $ret['interface'] = $rule['interface']; if($rule['descr'] != "" and $line != "") - $ret['descr'] = "label \"USER_RULE: " . str_replace('"', '', substr($rule['descr'], 0, 52)) . "\""; + $ret['descr'] = "label \"" . fix_rule_label("USER_RULE: {$rule['descr']}") . "\""; else $ret['descr'] = "label \"USER_RULE\""; @@ -2514,6 +2522,8 @@ function filter_generate_user_rule($rule) { function filter_rules_generate() { global $config, $g, $FilterIflist, $time_based_rules, $GatewaysList; + $fix_rule_label = 'fix_rule_label'; + update_filter_reload_status(gettext("Creating default rules")); if(isset($config['system']['developerspew'])) { $mt = microtime(); @@ -2676,12 +2686,12 @@ EOD; # block bogon networks # http://www.cymru.com/Documents/bogon-bn-nonagg.txt # http://www.team-cymru.org/Services/Bogons/fullbogons-ipv6.txt -block in $bogonlog quick on \${$oc['descr']} from to any label "block bogon IPv4 networks from {$oc['descr']}" +block in $bogonlog quick on \${$oc['descr']} from to any label "{$fix_rule_label("block bogon IPv4 networks from {$oc['descr']}")}" EOD; if(isset($config['system']['ipv6allow'])) { $ipfrules .= << to any label "block bogon IPv6 networks from {$oc['descr']}" +block in $bogonlog quick on \${$oc['descr']} from to any label "{$fix_rule_label("block bogon IPv6 networks from {$oc['descr']}")}" EOD; } @@ -2708,12 +2718,12 @@ EOD; $ipfrules .= <<