From c226103bc74b6beb9a9e60aa0fbbbaecd900d1bf Mon Sep 17 00:00:00 2001 From: idk Date: Mon, 19 Sep 2022 02:40:52 -0400 Subject: [PATCH] detect all Windows service states --- java/net/i2p/router/WinUpdateProcess.java | 2 +- java/net/i2p/router/WindowsServiceUtil.java | 45 ++++++++++++--------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/java/net/i2p/router/WinUpdateProcess.java b/java/net/i2p/router/WinUpdateProcess.java index df52c76..433284c 100644 --- a/java/net/i2p/router/WinUpdateProcess.java +++ b/java/net/i2p/router/WinUpdateProcess.java @@ -52,7 +52,7 @@ class WinUpdateProcess implements Runnable { // ProcessBuilder to run the installer. ProcessBuilder pb = new ProcessBuilder( file.getAbsolutePath(), "/S", "/D=" + workingDir.getAbsolutePath()); - Map env = pb.environment(); + Map env = pb.environment(); env.put("OLD_I2P_VERSION", version); env.remove("RESTART_I2P"); diff --git a/java/net/i2p/router/WindowsServiceUtil.java b/java/net/i2p/router/WindowsServiceUtil.java index 43dfa5d..b7bb133 100644 --- a/java/net/i2p/router/WindowsServiceUtil.java +++ b/java/net/i2p/router/WindowsServiceUtil.java @@ -61,7 +61,7 @@ public class WindowsServiceUtil { if (indexOfState >= 0) { int indexOfColon = qResult.indexOf(":", indexOfState); statePrefix = "STATE"; - for (int f = indexOfState+5; f < indexOfColon; f++) { + for (int f = indexOfState + 5; f < indexOfColon; f++) { statePrefix += " "; } statePrefix += ": "; @@ -83,24 +83,33 @@ public class WindowsServiceUtil { } return -2; } - + public static String getServiceState(String serviceName) { String stateString = "uninstalled"; - int state = getServiceStateInt(serviceName); - switch (state) { - case (1): // service stopped - stateString = "stopped"; - break; - case (2): // service starting - stateString = "starting"; - break; - case (3): // don't know yet - // stateString = "started"; - break; - case (4): // service started - stateString = "started"; - break; - } + int state = getServiceStateInt(serviceName); + switch (state) { + case (1): // service stopped + stateString = "stopped"; + break; + case (2): // service starting + stateString = "starting"; + break; + case (3): // service stopping + stateString = "stopping"; + break; + case (4): // service started + stateString = "started"; + break; + case (5): // service resuming from pause + stateString = "resuming"; + break; + case (6): // service pausing + stateString = "pausing"; + break; + case (7): // service paused + stateString = "paused"; + break; + } return stateString; } public static void main(String args[]) { @@ -108,6 +117,6 @@ public class WindowsServiceUtil { // this is the correct call. String state = getServiceState("i2p"); int stateInt = getServiceStateInt("i2p"); - System.out.println("i2p state: " + state + " code: " + stateInt); + System.out.println("i2p state: " + state + " code: " + stateInt); } }