aboutsummaryrefslogtreecommitdiffstats
path: root/packages/miniupnpd
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2006-10-07 20:32:06 +0000
committerScott Ullrich <sullrich@pfsense.org>2006-10-07 20:32:06 +0000
commitfdbf66d2810f301430b231609089d080dbbc5635 (patch)
tree9b6b46741f0f24b6f6572c21134e166931b61f87 /packages/miniupnpd
parenta3944b39ff5624b0afe8a4ec74536065d4a8c893 (diff)
downloadpfsense-packages-fdbf66d2810f301430b231609089d080dbbc5635.tar.gz
pfsense-packages-fdbf66d2810f301430b231609089d080dbbc5635.tar.bz2
pfsense-packages-fdbf66d2810f301430b231609089d080dbbc5635.zip
Apply changes suggested in http://forum.pfsense.org/index.php/topic,551.msg13610.html#msg13610
Diffstat (limited to 'packages/miniupnpd')
-rw-r--r--packages/miniupnpd/miniupnpd.inc10
1 files changed, 9 insertions, 1 deletions
diff --git a/packages/miniupnpd/miniupnpd.inc b/packages/miniupnpd/miniupnpd.inc
index ecd2fa10..d536253c 100644
--- a/packages/miniupnpd/miniupnpd.inc
+++ b/packages/miniupnpd/miniupnpd.inc
@@ -37,7 +37,9 @@
$start = "# Clear existing rules and rdr entries \n";
$start .= "/sbin/pfctl -aminiupnpd -Fr 2>&1 >/dev/null\n";
$start .= "/sbin/pfctl -aminiupnpd -Fn 2>&1 >/dev/null\n";
- $start .= "killall miniupnpd; sleep 3; /usr/local/sbin/miniupnpd -p 2869{$ifaces_final}";
+ $start .= "/usr/bin/killall miniupnpd\n";
+ $start .= "while [ `ps -A | grep /usr/local/sbin/miniupnpd | grep -v grep | wc -l` != 0 ]; do sleep 1; done\n";
+ $start .= "/usr/local/sbin/miniupnpd -p 2869{$ifaces_final}";
/* override wan ip address, common for carp, etc */
if($overridewanip)
@@ -54,7 +56,13 @@
)
);
}
+
+ /* if not ONE instance running lets start */
+ /* or if $_POST data as user is changing settings */
+ if((int)exec("ps -A | grep /usr/local/sbin/miniupnpd | grep -v grep | wc -l") != 1 || $_POST['interface_array']) {
start_service("miniupnpd");
+ }
+
config_unlock();
conf_mount_ro();
}