diff --git a/LaunchServer/source/command/basic/DebugCommand.java b/LaunchServer/source/command/basic/DebugCommand.java index 708996d..1fd30fe 100644 --- a/LaunchServer/source/command/basic/DebugCommand.java +++ b/LaunchServer/source/command/basic/DebugCommand.java @@ -21,9 +21,13 @@ @Override public void invoke(String... args) { + boolean newValue; if (args.length >= 1) { - LogHelper.setDebugEnabled(Boolean.parseBoolean(args[0])); + newValue = Boolean.parseBoolean(args[0]); + LogHelper.setDebugEnabled(newValue); + } else { + newValue = LogHelper.isDebugEnabled(); } - LogHelper.subInfo("Debug enabled: " + LogHelper.isDebugEnabled()); + LogHelper.subInfo("Debug enabled: " + newValue); } } diff --git a/LaunchServer/source/command/basic/LogConnectionsCommand.java b/LaunchServer/source/command/basic/LogConnectionsCommand.java new file mode 100644 index 0000000..ed3fbca --- /dev/null +++ b/LaunchServer/source/command/basic/LogConnectionsCommand.java @@ -0,0 +1,33 @@ +package launchserver.command.basic; + +import launcher.helper.LogHelper; +import launchserver.LaunchServer; +import launchserver.command.Command; + +public final class LogConnectionsCommand extends Command { + public LogConnectionsCommand(LaunchServer server) { + super(server); + } + + @Override + public String getArgsDescription() { + return "[true/false]"; + } + + @Override + public String getUsageDescription() { + return "Enable or disable logging connections"; + } + + @Override + public void invoke(String... args) { + boolean newValue; + if (args.length >= 1) { + newValue = Boolean.parseBoolean(args[0]); + server.serverSocketHandler.logConnections = newValue; + } else { + newValue = server.serverSocketHandler.logConnections; + } + LogHelper.subInfo("Log connections: " + newValue); + } +} diff --git a/LaunchServer/source/command/handler/CommandHandler.java b/LaunchServer/source/command/handler/CommandHandler.java index ea97792..2557830 100644 --- a/LaunchServer/source/command/handler/CommandHandler.java +++ b/LaunchServer/source/command/handler/CommandHandler.java @@ -26,6 +26,7 @@ import launchserver.command.basic.DebugCommand; import launchserver.command.basic.GCCommand; import launchserver.command.basic.HelpCommand; +import launchserver.command.basic.LogConnectionsCommand; import launchserver.command.basic.RebindCommand; import launchserver.command.basic.StopCommand; import launchserver.command.basic.VersionCommand; @@ -50,6 +51,7 @@ registerCommand("debug", new DebugCommand(server)); registerCommand("clear", new ClearCommand(server)); registerCommand("gc", new GCCommand(server)); + registerCommand("logConnections", new LogConnectionsCommand(server)); // Register sync commands registerCommand("indexAsset", new IndexAssetCommand(server)); diff --git a/LaunchServer/source/response/ResponseThread.java b/LaunchServer/source/response/ResponseThread.java index 8d0a744..9d63300 100644 --- a/LaunchServer/source/response/ResponseThread.java +++ b/LaunchServer/source/response/ResponseThread.java @@ -26,9 +26,6 @@ import launchserver.response.update.UpdateResponse; public final class ResponseThread implements Runnable { - private static final boolean LOG_CONNECTIONS = Boolean.getBoolean("launcher.logConnections"); - - // Instance private final LaunchServer server; private final long id; private final Socket socket; @@ -46,9 +43,11 @@ public void run() { boolean cancelled = false; Exception savedError = null; + if (!server.serverSocketHandler.logConnections) { + LogHelper.debug("Connection #%d from %s", id, IOHelper.getIP(socket.getRemoteSocketAddress())); + } // Process connection - LogHelper.debug("Connection #%d from %s", id, IOHelper.getIP(socket.getRemoteSocketAddress())); try (HInput input = new HInput(socket.getInputStream()); HOutput output = new HOutput(socket.getOutputStream())) { Request.Type type = readHandshake(input, output); @@ -104,8 +103,8 @@ } private void respond(Request.Type type, HInput input, HOutput output) throws Exception { - if (LOG_CONNECTIONS) { - LogHelper.info("Connection from %s: %s", IOHelper.getIP(socket.getRemoteSocketAddress()), type.name()); + if (server.serverSocketHandler.logConnections) { + LogHelper.info("Connection %d from %s: %s", id, IOHelper.getIP(socket.getRemoteSocketAddress()), type.name()); } else { LogHelper.subDebug("#%d Type: %s", id, type.name()); } diff --git a/LaunchServer/source/response/ServerSocketHandler.java b/LaunchServer/source/response/ServerSocketHandler.java index 505365a..cb89dee 100644 --- a/LaunchServer/source/response/ServerSocketHandler.java +++ b/LaunchServer/source/response/ServerSocketHandler.java @@ -30,6 +30,7 @@ private final LaunchServer server; private final AtomicReference serverSocket = new AtomicReference<>(); private final ExecutorService threadPool = Executors.newCachedThreadPool(THREAD_FACTORY); + @LauncherAPI public volatile boolean logConnections = Boolean.getBoolean("launcher.logConnections"); // API private final Map customResponses = new ConcurrentHashMap<>(2);