summaryrefslogtreecommitdiffstats
path: root/etc/inc/shaper.inc
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2014-02-24 12:24:52 -0300
committerRenato Botelho <garga@FreeBSD.org>2014-02-24 12:25:59 -0300
commitb5388f033c51ba1102ec00d8c1d604c6ea39827d (patch)
tree2c6fff94449bece12e3d46c7c1530d09a3736e8a /etc/inc/shaper.inc
parent732b160dbac6d6cb3e0be169d517d1a5f1ff523c (diff)
downloadpfsense-b5388f033c51ba1102ec00d8c1d604c6ea39827d.zip
pfsense-b5388f033c51ba1102ec00d8c1d604c6ea39827d.tar.gz
Fix #2302, save custom uploaded l7 pattern files on config.xml and replicate it to slave
Diffstat (limited to 'etc/inc/shaper.inc')
-rw-r--r--etc/inc/shaper.inc16
1 files changed, 16 insertions, 0 deletions
diff --git a/etc/inc/shaper.inc b/etc/inc/shaper.inc
index 4edd21c..9e06ab9 100644
--- a/etc/inc/shaper.inc
+++ b/etc/inc/shaper.inc
@@ -4084,6 +4084,17 @@ function read_layer7_config() {
}
}
+function update_layer7_custom_patterns() {
+ global $config;
+
+ if (!is_array($config['l7shaper']['custom_pat']))
+ return;
+
+ foreach ($config['l7shaper']['custom_pat'] as $filename => $filecontent)
+ if (!file_exists("/usr/local/share/protocols/" . $filename))
+ @file_put_contents("/usr/local/share/protocols/" . $filename, base64_decode($filecontent));
+}
+
function generate_layer7_files() {
global $layer7_rules_list, $g;
@@ -4096,6 +4107,8 @@ function generate_layer7_files() {
array_map('unlink', glob("{$g['tmp_path']}/*.l7"));
}
+ update_layer7_custom_patterns();
+
foreach($layer7_rules_list as $l7rules) {
if($l7rules->GetREnabled()) {
$filename = $l7rules->GetRName() . ".l7";
@@ -4140,6 +4153,9 @@ function layer7_start_l7daemon() {
// This function uses /usr/local/share/protocols as a default directory for searching .pat files
function generate_protocols_array() {
+
+ update_layer7_custom_patterns();
+
$protocols = return_dir_as_array("/usr/local/share/protocols");
$protocols_new = array();
if(is_array($protocols)) {
OpenPOWER on IntegriCloud