ipsec: Fix stop command on systems where sleep(1) only supports integers
authorTobias Brunner <tobias@strongswan.org>
Thu, 10 Dec 2015 10:46:21 +0000 (11:46 +0100)
committerTobias Brunner <tobias@strongswan.org>
Thu, 10 Dec 2015 10:46:21 +0000 (11:46 +0100)
Fixes #1231.

src/ipsec/_ipsec.in

index 89c7ef7..a002614 100644 (file)
@@ -259,10 +259,15 @@ stop)
                        loop=110
                        while [ $loop -gt 0 ] ; do
                                kill -0 $spid 2>/dev/null || break
-                               sleep 0.1
+                               sleep 0.1 2>/dev/null
+                               if [ $? -ne 0 ]
+                               then
+                                       sleep 1
+                                       loop=$(($loop - 9))
+                               fi
                                loop=$(($loop - 1))
                        done
-                       if [ $loop -eq 0 ]
+                       if [ $loop -le 0 ]
                        then
                                kill -KILL $spid 2>/dev/null
                                rm -f $IPSEC_STARTER_PID