diff options
author | Scott Ullrich <sullrich@pfSense.org> | 2009-12-23 21:35:47 -0500 |
---|---|---|
committer | Scott Ullrich <sullrich@pfSense.org> | 2009-12-23 21:35:47 -0500 |
commit | 19de945aa4c2226d95df15be65c9a976059ea166 (patch) | |
tree | 8aa9efe17df88b4bca45a30554fc8562be62013a /etc | |
parent | c9e09e0b9952afeff4883f2bb131ad3471446274 (diff) | |
download | pfsense-19de945aa4c2226d95df15be65c9a976059ea166.zip pfsense-19de945aa4c2226d95df15be65c9a976059ea166.tar.gz |
Add dynamic pkg hooks support. Submitted by Bill M on 11/17/08.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/filter.inc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index 97861a9..8bf6a1d 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -1207,9 +1207,24 @@ EOD; if (file_exists("{$g['tmp_path']}/rules.rdr.packages")) $natrules .= file_get_contents("{$g['tmp_path']}/rules.rdr.packages"); + if(is_dir("/usr/local/pkg/")) { + $files = split(" ", trim(`/usr/local/pkg/*.inc`)); + foreach($files as $pkg_inc) { + update_filter_reload_status("Checking for filter hooks in package {$pkg}"); + require_once($pkg_inc); + $pkg = basename($pkg_inc); + $pkg_generate_rules = "${pkg}_generate_rules"; + if (function_exists($pkg_generate_rules)) { + update_filter_reload_status("Running nat hooks in package {$pkg}"); + $natrules .= $pkg_generate_rules('nat'); + } + } + } + $natrules .= filter_process_carp_nat_rules(); $natrules .= "# UPnPd rdr anchor\n"; $natrules .= "rdr-anchor \"miniupnpd\"\n"; + return $natrules; } @@ -1667,6 +1682,20 @@ function filter_rules_generate() $pptpdcfg = $config['pptpd']; $pppoecfg = $config['pppoe']; + if(is_dir("/usr/local/pkg")) { + $files = split(" ", trim(`/usr/local/pkg/*.inc`)); + foreach($files as $pkg_inc) { + update_filter_reload_status("Checking for filter hooks in package {$pkg}"); + require_once($pkg_inc); + $pkg = basename($pkg_inc); + $pkg_generate_rules = "{$pkg}_generate_rules"; + if (function_exists($pkg_generate_rules)) { + update_filter_reload_status("Processing filter rules for package {$pkg}"); + $ipfrules .= $pkg_generate_rules ('filter'); + } + } + } + /* if captive portal is enabled, ensure that access to this port * is allowed on a locked down interface */ |