diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java b/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java index dc483640..7ca5517b 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java @@ -79,6 +79,8 @@ public static final class Config { public String[] mirrors; public String binaryName; + + public boolean copyBinaries = true; public LauncherConfig.LauncherEnvironment env; @@ -269,7 +271,7 @@ public class LauncherConf } public class NettyConfig { - public boolean clientEnabled; + public boolean fileServerEnabled; public boolean sendExceptionEnabled; public String launcherURL; public String downloadURL; @@ -704,11 +706,7 @@ private void generateConfigIfNotExists(boolean testEnv) throws IOException { newConfig.whitelistRejectString = "Вас нет в белом списке"; newConfig.netty = new NettyConfig(); - newConfig.netty.address = "ws://localhost:9274/api"; - newConfig.netty.downloadURL = "http://localhost:9274/%dirname%/"; - newConfig.netty.launcherURL = "http://localhost:9274/Launcher.jar"; - newConfig.netty.launcherEXEURL = "http://localhost:9274/Launcher.exe"; - newConfig.netty.clientEnabled = false; + newConfig.netty.fileServerEnabled = true; newConfig.netty.binds = new NettyBindAddress[]{ new NettyBindAddress("0.0.0.0", 9274) }; newConfig.netty.performance = new NettyPerformanceConfig(); newConfig.netty.performance.bossThread = 2; @@ -753,6 +751,12 @@ private void generateConfigIfNotExists(boolean testEnv) throws IOException { LogHelper.error("ProjectName null. Using MineCraft"); newConfig.projectName = "MineCraft"; } + + newConfig.netty.address = "ws://" + newConfig.legacyAddress + ":9274/api"; + newConfig.netty.downloadURL = "http://" + newConfig.legacyAddress + ":9274/%dirname%/"; + newConfig.netty.launcherURL = "http://" + newConfig.legacyAddress + ":9274/internal/Launcher.jar"; + newConfig.netty.launcherEXEURL = "http://" + newConfig.legacyAddress + ":9274/internal/Launcher.exe"; + newConfig.netty.sendExceptionEnabled = true; // Write LaunchServer config LogHelper.info("Writing LaunchServer config file"); diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/EXEL4JLauncherBinary.java b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/EXEL4JLauncherBinary.java index 8be92cf1..ba669376 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/EXEL4JLauncherBinary.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/EXEL4JLauncherBinary.java @@ -35,7 +35,7 @@ public void clear() { public EXEL4JLauncherBinary(LaunchServer server) { - super(server, server.dir.resolve(server.config.binaryName + ".exe")); + super(server, LauncherBinary.resolve(server, ".exe")); faviconFile = server.dir.resolve("favicon.ico"); } diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/EXELauncherBinary.java b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/EXELauncherBinary.java index 16c68a2d..77b785ea 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/EXELauncherBinary.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/EXELauncherBinary.java @@ -10,7 +10,7 @@ public class EXELauncherBinary extends LauncherBinary { public EXELauncherBinary(LaunchServer server) { - super(server, server.dir.resolve(server.config.binaryName + ".exe")); + super(server, LauncherBinary.resolve(server, ".exe")); } @Override diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/JARLauncherBinary.java b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/JARLauncherBinary.java index 605d3675..839976f1 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/JARLauncherBinary.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/JARLauncherBinary.java @@ -24,9 +24,8 @@ public final class JARLauncherBinary extends LauncherBinary { public List addonLibs; public JARLauncherBinary(LaunchServer server) throws IOException { - super(server); + super(server, LauncherBinary.resolve(server, ".jar")); count = new AtomicLong(0); - syncBinaryFile = server.dir.resolve(server.config.binaryName + ".jar"); runtimeDir = server.dir.resolve(Launcher.RUNTIME_DIR); guardDir = server.dir.resolve(Launcher.GUARD_DIR); buildDir = server.dir.resolve("build"); diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/LauncherBinary.java b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/LauncherBinary.java index da9a9be4..1e37d764 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/LauncherBinary.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/LauncherBinary.java @@ -10,7 +10,7 @@ public abstract class LauncherBinary { public final LaunchServer server; - public Path syncBinaryFile; + public final Path syncBinaryFile; private volatile DigestBytesHolder binary; private volatile byte[] sign; @@ -19,10 +19,6 @@ protected LauncherBinary(LaunchServer server, Path binaryFile) { syncBinaryFile = binaryFile; } - protected LauncherBinary(LaunchServer server) { - this.server = server; - } - public abstract void build() throws IOException; @@ -49,4 +45,8 @@ public final boolean sync() throws IOException { return exists; } + + public static final Path resolve(LaunchServer server, String ext) { + return server.config.copyBinaries ? server.updatesDir.resolve(server.config.binaryName + ext) : server.dir.resolve(server.config.binaryName + ext); + } } diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/websocket/LauncherNettyServer.java b/LaunchServer/src/main/java/ru/gravit/launchserver/websocket/LauncherNettyServer.java index 29725e9c..0df2a864 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/websocket/LauncherNettyServer.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/websocket/LauncherNettyServer.java @@ -42,7 +42,7 @@ public void initChannel(NioSocketChannel ch) { pipeline.addLast(new HttpObjectAggregator(65536)); pipeline.addLast(new WebSocketServerCompressionHandler()); pipeline.addLast(new WebSocketServerProtocolHandler(WEBSOCKET_PATH, null, true)); - pipeline.addLast(new FileServerHandler(LaunchServer.server.updatesDir, true)); + if (LaunchServer.server.config.netty.fileServerEnabled) pipeline.addLast(new FileServerHandler(LaunchServer.server.updatesDir, true)); pipeline.addLast(new WebSocketFrameHandler()); } }); diff --git a/libLauncher/src/main/java/ru/gravit/launcher/ssl/LauncherSSLContext.java b/libLauncher/src/main/java/ru/gravit/launcher/ssl/LauncherSSLContext.java index eaa6ba8a..480f52ce 100644 --- a/libLauncher/src/main/java/ru/gravit/launcher/ssl/LauncherSSLContext.java +++ b/libLauncher/src/main/java/ru/gravit/launcher/ssl/LauncherSSLContext.java @@ -6,8 +6,6 @@ public class LauncherSSLContext { public SSLServerSocketFactory ssf; public SSLSocketFactory sf; - @SuppressWarnings("unused") - private SSLContext sc; public LauncherSSLContext(KeyStore ks, String keypassword) throws NoSuchAlgorithmException, KeyStoreException, UnrecoverableKeyException, KeyManagementException { TrustManager[] trustAllCerts = new TrustManager[]{