Welcome to little lamb

Code » anopa » commit db77fec

Fix not always reading s6 status (up/down) correctly

author Olivier Brunel
2015-02-21 13:33:28 UTC
committer Olivier Brunel
2015-04-04 12:47:34 UTC
parent 3e465bf286caf626ebe58985158d35ac072eeaa2

Fix not always reading s6 status (up/down) correctly

Forgot to account for flagfinishing.

src/libanopa/exec_longrun.c +2 -1
src/libanopa/service.c +1 -1

diff --git a/src/libanopa/exec_longrun.c b/src/libanopa/exec_longrun.c
index 0ef860b..485ab4f 100644
--- a/src/libanopa/exec_longrun.c
+++ b/src/libanopa/exec_longrun.c
@@ -46,7 +46,8 @@ _exec_longrun (int si, aa_mode mode)
     }
 
     if (s6_svstatus_read (aa_service_name (s), &st6)
-            && ((is_start && !!st6.pid) || (!is_start && !st6.pid)))
+            && ((is_start && (st6.pid && !st6.flagfinishing))
+                || (!is_start && !(st6.pid && !st6.flagfinishing))))
     {
         tain_now_g ();
 
diff --git a/src/libanopa/service.c b/src/libanopa/service.c
index fc26753..baece64 100644
--- a/src/libanopa/service.c
+++ b/src/libanopa/service.c
@@ -171,7 +171,7 @@ aa_ensure_service_loaded (int si, aa_mode mode, int no_wants, aa_load_fail_cb lf
             if (s6_svstatus_read (aa_service_name (aa_service (si)), &st6))
             {
                 chk_st = 0;
-                is_up = !!st6.pid;
+                is_up = st6.pid && !st6.flagfinishing;
             }
             tain_now_g ();
         }