diff options
author | Renato Botelho <garga@FreeBSD.org> | 2014-02-24 12:24:52 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2014-02-24 12:25:59 -0300 |
commit | b5388f033c51ba1102ec00d8c1d604c6ea39827d (patch) | |
tree | 2c6fff94449bece12e3d46c7c1530d09a3736e8a /etc/inc/shaper.inc | |
parent | 732b160dbac6d6cb3e0be169d517d1a5f1ff523c (diff) | |
download | pfsense-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.inc | 16 |
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)) { |