summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/etc/inc/filter.inc13
-rw-r--r--src/usr/local/www/firewall_rules_edit.php7
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',
OpenPOWER on IntegriCloud