diff options
author | Phil Davis <phil.davis@inf.org> | 2017-02-22 20:53:19 +0545 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2017-03-02 16:53:40 -0300 |
commit | 956b03cd0d16ea0b24eb5228c95c665f8efad138 (patch) | |
tree | 112eeaaf5106ba7b93fce4d3939eddc8ac4e4cca | |
parent | e850b0a3c7b273e43ae1d3eada7e034c628c7d1c (diff) | |
download | pfsense-956b03cd0d16ea0b24eb5228c95c665f8efad138.zip pfsense-956b03cd0d16ea0b24eb5228c95c665f8efad138.tar.gz |
Fix 7294 keep full rule description
Signed-off-by: Phil Davis <phil.davis@inf.org>
(cherry picked from commit 680e15baef76a9c598d52d3f2b9ab498077336a8)
-rw-r--r-- | src/etc/inc/filter.inc | 13 | ||||
-rw-r--r-- | src/usr/local/www/firewall_rules_edit.php | 7 |
2 files changed, 15 insertions, 5 deletions
diff --git a/src/etc/inc/filter.inc b/src/etc/inc/filter.inc index b3e1a7f..671e628 100644 --- a/src/etc/inc/filter.inc +++ b/src/etc/inc/filter.inc @@ -134,6 +134,8 @@ $icmptypes = array( define("ANTILOCKOUT_TRACKER", 10000); define("BOGONS_TRACKER", 11000); define("RFC1918_TRACKER", 12000); +define("PFLABEL_MAXLEN", 63); +define("USER_LABEL_INTRO", "USER_RULE: "); $tracker = 1000000000; $negate_tracker = 10000000; @@ -151,10 +153,15 @@ function filter_negaterule_tracker() { return "tracker {$negate_tracker} "; } +function user_rule_descr_maxlen() { + return PFLABEL_MAXLEN - strlen(USER_LABEL_INTRO); +} + function fix_rule_label($descr) { $descr = str_replace('"', '', $descr); - if (strlen($descr) > 63) { - return substr($descr, 0, 60) . "..."; + if (strlen($descr) > PFLABEL_MAXLEN) { + $dots = "..."; + return substr($descr, 0, PFLABEL_MAXLEN - strlen($dots)) . $dots; } else { return $descr; } @@ -2408,7 +2415,7 @@ function filter_generate_user_rule_arr($rule) { $ret['rule'] = $line; $ret['interface'] = $rule['interface']; if ($rule['descr'] != "" and $line != "") { - $ret['descr'] = "label \"" . fix_rule_label("USER_RULE: {$rule['descr']}") . "\""; + $ret['descr'] = "label \"" . fix_rule_label(USER_LABEL_INTRO . "{$rule['descr']}") . "\""; } else { $ret['descr'] = "label \"USER_RULE\""; } diff --git a/src/usr/local/www/firewall_rules_edit.php b/src/usr/local/www/firewall_rules_edit.php index eef7ff0..610d1a0 100644 --- a/src/usr/local/www/firewall_rules_edit.php +++ b/src/usr/local/www/firewall_rules_edit.php @@ -917,7 +917,8 @@ if ($_POST) { } else { unset($filterent['log']); } - strncpy($filterent['descr'], $_POST['descr'], 52); + + $filterent['descr'] = trim($_POST['descr']); if ($_POST['gateway'] != "") { $filterent['gateway'] = $_POST['gateway']; @@ -1497,7 +1498,9 @@ $section->addInput(new Form_Input( 'Description', 'text', $pconfig['descr'] -))->setHelp('A description may be entered here for administrative reference.'); +))->setHelp('A description may be entered here for administrative reference. ' . + 'A maximum of %s characters will be used in the ruleset and displayed in the firewall log.', + user_rule_descr_maxlen()); $btnadv = new Form_Button( 'btnadvopts', |