diff options
author | Ryan Wagoner <rsw686@pfsense.org> | 2007-07-23 17:26:33 +0000 |
---|---|---|
committer | Ryan Wagoner <rsw686@pfsense.org> | 2007-07-23 17:26:33 +0000 |
commit | 431484c8ef64f0f039333b8004106cb7d0f58def (patch) | |
tree | 6c6e1e42004fcb1d9e7687c93c7266287f4989a6 /etc/inc/services.inc | |
parent | a097d3c06c96df8cefd75b7e85df4485d04f02d9 (diff) | |
download | pfsense-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/inc/services.inc')
-rw-r--r-- | etc/inc/services.inc | 35 |
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 +?> |