From 00e4e8109e1f369c8683466a3a2e8e8f22b37ee8 Mon Sep 17 00:00:00 2001 From: flightlevel Date: Mon, 2 Jul 2018 21:09:42 +1000 Subject: [PATCH] Reserve all addresses for port --- src/Jackett.Server/Initialisation.cs | 29 +++++--------------- src/Jackett.Server/Services/ServerService.cs | 2 +- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/src/Jackett.Server/Initialisation.cs b/src/Jackett.Server/Initialisation.cs index a0b5e5f82..809e6b7be 100644 --- a/src/Jackett.Server/Initialisation.cs +++ b/src/Jackett.Server/Initialisation.cs @@ -54,6 +54,7 @@ namespace Jackett.Server public static void ProcessWindowsSpecificArgs(ConsoleOptions consoleOptions, IProcessService processService, ServerConfig serverConfig, Logger logger) { IServiceConfigService serviceConfigService = new ServiceConfigService(); + IServerService serverService = new ServerService(null, processService, null, null, logger, null, null, null, serverConfig); /* ====== Actions ===== */ @@ -69,7 +70,7 @@ namespace Jackett.Server if (consoleOptions.Uninstall) { logger.Info("Initiating Jackett service uninstall"); - ReserveUrls(processService, serverConfig, logger, doInstall: false); + serverService.ReserveUrls(false); serviceConfigService.Uninstall(); Environment.Exit(1); } @@ -100,13 +101,15 @@ namespace Jackett.Server if (consoleOptions.ReserveUrls) { logger.Info("Initiating ReserveUrls"); - ReserveUrls(processService, serverConfig, logger, doInstall: true); + serverService.ReserveUrls(true); Environment.Exit(1); } } public static void ProcessConsoleOverrides(ConsoleOptions consoleOptions, IProcessService processService, ServerConfig serverConfig, IConfigurationService configurationService, Logger logger) { + IServerService serverService = new ServerService(null, processService, null, null, logger, null, null, null, serverConfig); + // Override port if (consoleOptions.Port != 0) { @@ -121,7 +124,7 @@ namespace Jackett.Server { if (ServerUtil.IsUserAdministrator()) { - ReserveUrls(processService, serverConfig, logger, doInstall: true); + serverService.ReserveUrls(true); } else { @@ -144,7 +147,7 @@ namespace Jackett.Server { if (ServerUtil.IsUserAdministrator()) { - ReserveUrls(processService, serverConfig, logger, doInstall: true); + serverService.ReserveUrls(true); } else { @@ -156,23 +159,5 @@ namespace Jackett.Server } } } - - public static void ReserveUrls(IProcessService processService, ServerConfig serverConfig, Logger logger, bool doInstall = true) - { - logger.Debug("Unreserving Urls"); - serverConfig.GetListenAddresses(false).ToList().ForEach(u => RunNetSh(processService, string.Format("http delete urlacl {0}", u))); - serverConfig.GetListenAddresses(true).ToList().ForEach(u => RunNetSh(processService, string.Format("http delete urlacl {0}", u))); - if (doInstall) - { - logger.Debug("Reserving Urls"); - serverConfig.GetListenAddresses(serverConfig.AllowExternal).ToList().ForEach(u => RunNetSh(processService, string.Format("http add urlacl {0} sddl=D:(A;;GX;;;S-1-1-0)", u))); - logger.Debug("Urls reserved"); - } - } - - private static void RunNetSh(IProcessService processService, string args) - { - processService.StartProcessAndLog("netsh.exe", args); - } } } diff --git a/src/Jackett.Server/Services/ServerService.cs b/src/Jackett.Server/Services/ServerService.cs index 0aabccdf1..96f2f7872 100644 --- a/src/Jackett.Server/Services/ServerService.cs +++ b/src/Jackett.Server/Services/ServerService.cs @@ -279,7 +279,7 @@ namespace Jackett.Server.Services if (doInstall) { logger.Debug("Reserving Urls"); - config.GetListenAddresses(config.AllowExternal).ToList().ForEach(u => RunNetSh(string.Format("http add urlacl {0} sddl=D:(A;;GX;;;S-1-1-0)", u))); + config.GetListenAddresses(true).ToList().ForEach(u => RunNetSh(string.Format("http add urlacl {0} sddl=D:(A;;GX;;;S-1-1-0)", u))); logger.Debug("Urls reserved"); } }