strongswan: fix reload service
authorHans Dedecker <dedeckeh@gmail.com>
Wed, 13 Dec 2017 09:32:26 +0000 (10:32 +0100)
committerHans Dedecker <dedeckeh@gmail.com>
Wed, 13 Dec 2017 09:49:55 +0000 (10:49 +0100)
Based on the ipsec running state reload_service is either reloading ipsec
or starting ipsec. However in the latter case it calls ipsec start which
bypasses the procd start_service function which means the running ipsec
instance is not managed by procd.
Fix this by calling start in case ipsec is not running; at the same time
add service_running function which is used by procd provided running
function.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
net/strongswan/files/ipsec.init

index 311679d69af96caa6283e7b8ff147d12e936b7dc..1e0adfd1141a4855e2c290999ef239a3a90b2be5 100644 (file)
@@ -318,14 +318,19 @@ prepare_env() {
        config_foreach config_remote remote
 }
 
+service_running() {
+       ipsec status > /dev/null 2>&1
+}
+
 reload_service() {
-       prepare_env
-       if ipsec status > /dev/null 2>&1; then
+       running && {
+               prepare_env
                ipsec rereadall
                ipsec reload
-       else
-               ipsec start
-       fi
+               return
+       }
+
+       start
 }
 
 service_triggers() {