summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr/local/pkg/miniupnpd.inc29
1 files changed, 29 insertions, 0 deletions
diff --git a/usr/local/pkg/miniupnpd.inc b/usr/local/pkg/miniupnpd.inc
index c13cc30..518cd9e 100644
--- a/usr/local/pkg/miniupnpd.inc
+++ b/usr/local/pkg/miniupnpd.inc
@@ -232,6 +232,35 @@
if(upnp_config('permdefault'))
$configtext .= "deny 0-65535 0.0.0.0/0 0-65535\n";
+ /* generate rc file start and stop */
+ $stop = <<<EOD
+if [ `pgrep miniupnpd | wc -l` != 0 ]; then
+ /usr/bin/killall miniupnpd
+ while [ `pgrep miniupnpd | wc -l` != 0 ]; do
+ sleep 1
+ done
+ fi
+ # Clear existing rules and rdr entries
+ if [ `pfctl -aminiupnpd -sr | wc -l` != 0 ]; then
+ /sbin/pfctl -aminiupnpd -Fr 2>&1 >/dev/null
+ fi
+ if [ `pfctl -aminiupnpd -sn | wc -l` != 0 ]; then
+ /sbin/pfctl -aminiupnpd -Fn 2>&1 >/dev/null
+ fi
+EOD;
+ $start = $stop."\n\t/usr/local/sbin/miniupnpd -f ".UPNP_CONFIG;
+
+ /* write out the configuration */
+ conf_mount_rw();
+ upnp_write_config(UPNP_CONFIG,$configtext);
+ write_rcfile(array(
+ 'file' => 'miniupnpd.sh',
+ 'start' => $start,
+ 'stop' => $stop
+ )
+ );
+ conf_mount_ro();
+
/* if miniupnpd not running start it */
if(!upnp_running()) {
upnp_notice("Starting service on interface: {$ifaces_active}");
OpenPOWER on IntegriCloud