summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfSense.org>2009-12-23 21:35:47 -0500
committerScott Ullrich <sullrich@pfSense.org>2009-12-23 21:35:47 -0500
commit19de945aa4c2226d95df15be65c9a976059ea166 (patch)
tree8aa9efe17df88b4bca45a30554fc8562be62013a /etc
parentc9e09e0b9952afeff4883f2bb131ad3471446274 (diff)
downloadpfsense-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.inc29
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
*/
OpenPOWER on IntegriCloud