diff options
author | Ryan Wagoner <rsw686@pfsense.org> | 2007-07-23 16:57:18 +0000 |
---|---|---|
committer | Ryan Wagoner <rsw686@pfsense.org> | 2007-07-23 16:57:18 +0000 |
commit | 1cb3a834d3c1c0d2048fa6b4eb7af3822445ed71 (patch) | |
tree | efb480f7926694b54132be8a7e6174b087c792e4 /etc | |
parent | db157e3b5a0162cf90dcc215205c48d24f22e58d (diff) | |
download | pfsense-1cb3a834d3c1c0d2048fa6b4eb7af3822445ed71.zip pfsense-1cb3a834d3c1c0d2048fa6b4eb7af3822445ed71.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.inc | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc index b4361bc..66f97ed 100644 --- a/etc/inc/services.inc +++ b/etc/inc/services.inc @@ -1269,11 +1269,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 +?> |