summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorRyan Wagoner <rsw686@pfsense.org>2007-07-23 17:26:33 +0000
committerRyan Wagoner <rsw686@pfsense.org>2007-07-23 17:26:33 +0000
commit431484c8ef64f0f039333b8004106cb7d0f58def (patch)
tree6c6e1e42004fcb1d9e7687c93c7266287f4989a6 /etc
parenta097d3c06c96df8cefd75b7e85df4485d04f02d9 (diff)
downloadpfsense-431484c8ef64f0f039333b8004106cb7d0f58def.zip
pfsense-431484c8ef64f0f039333b8004106cb7d0f58def.tar.gz
-move upnp_action to services.inc
-make sure to clear rules when stopping miniupnpd -fix status_upnp and status_services pages so they use upnp_action and not the rcfile
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/services.inc35
1 files changed, 31 insertions, 4 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc
index 0ddeb50..5b2158f 100644
--- a/etc/inc/services.inc
+++ b/etc/inc/services.inc
@@ -1272,11 +1272,38 @@ function configure_cron() {
conf_mount_ro();
}
+function upnp_action ($action) {
+ switch($action) {
+ case "start":
+ if(file_exists('/var/etc/miniupnpd.conf'))
+ mwexec_bg('/usr/local/sbin/miniupnpd -f /var/etc/miniupnpd.conf');
+ break;
+ case "stop":
+ while((int)exec("pgrep miniupnpd | wc -l") > 0)
+ mwexec('killall miniupnpd 2>/dev/null');
+ mwexec('/sbin/pfctl -aminiupnpd -Fr 2>&1 >/dev/null');
+ mwexec('/sbin/pfctl -aminiupnpd -Fn 2>&1 >/dev/null');
+ break;
+ case "restart":
+ upnp_action('stop');
+ upnp_action('start');
+ break;
+ }
+}
+
function upnp_start() {
- global $config;
- if($config['installedpackages']['miniupnpd']['config'][0]["enable"]) {
- mwexec_bg("/usr/local/sbin/miniupnpd -f /var/etc/miniupnpd.conf");
+ global $config, $g;
+ if($config['installedpackages']['miniupnpd']['config'][0]['enable']) {
+ if($g['booting']) {
+ echo "Starting UPnP service... ";
+ include('/usr/local/pkg/miniupnpd.inc');
+ sync_package_miniupnpd();
+ echo "done.\n";
+ }
+ else {
+ upnp_action('start');
+ }
}
}
-?> \ No newline at end of file
+?>
OpenPOWER on IntegriCloud