[PATCH] vpn-select: Fix case of missing .pid file

Adrian Schmutzler freifunk at adrianschmutzler.de
Do Aug 31 20:46:05 CEST 2017


Bug: If /tmp/run/fastd.${project}.pid is missing, the directory
/proc/ is checked instead of /proc/{something}.

Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
 src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
index c3d003f..3859817 100755
--- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
+++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
@@ -79,10 +79,11 @@ if ping -w5 -c3 "$test_ipv4_host1" &>/dev/null ||
         /etc/init.d/fastd reload
 
         # fastd start/stop for various situations
+        pidfile="/tmp/run/fastd.${project}.pid"
         if [ "$(ls /etc/fastd/${project}/peers/* 2>/dev/null)" ]; then
-            [ -d /proc/$(cat /tmp/run/fastd.${project}.pid) ] || /etc/init.d/fastd start
+            ([ -s "$pidfile" ] && [ -d "/proc/$(cat "$pidfile")" ]) || /etc/init.d/fastd start
         else
-            [ -d /proc/$(cat /tmp/run/fastd.${project}.pid) ] && /etc/init.d/fastd stop
+            ([ -s "$pidfile" ] && [ -d "/proc/$(cat "$pidfile")" ]) && /etc/init.d/fastd stop
         fi
 
     fi
-- 
2.7.4



Mehr Informationen über die Mailingliste franken-dev