diff --git a/src/Tgstation.Server.Host/Components/Interop/JsonFile.cs b/src/Tgstation.Server.Host/Components/Interop/JsonFile.cs
index 4c318c21c3..b7e5da7d3a 100644
--- a/src/Tgstation.Server.Host/Components/Interop/JsonFile.cs
+++ b/src/Tgstation.Server.Host/Components/Interop/JsonFile.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using Tgstation.Server.Api.Models;
using Tgstation.Server.Api.Models.Internal;
namespace Tgstation.Server.Host.Components.Interop
@@ -41,7 +42,12 @@ namespace Tgstation.Server.Host.Components.Interop
///
/// The of the launch
///
- public RevisionInformation Revision { get; set; }
+ public Api.Models.Internal.RevisionInformation Revision { get; set; }
+
+ ///
+ /// The level of the launch
+ ///
+ public DreamDaemonSecurity SecurityLevel { get; set; }
///
/// The s in the launch
diff --git a/src/Tgstation.Server.Host/Components/Watchdog/SessionControllerFactory.cs b/src/Tgstation.Server.Host/Components/Watchdog/SessionControllerFactory.cs
index dae993db92..9e4601e314 100644
--- a/src/Tgstation.Server.Host/Components/Watchdog/SessionControllerFactory.cs
+++ b/src/Tgstation.Server.Host/Components/Watchdog/SessionControllerFactory.cs
@@ -131,6 +131,22 @@ namespace Tgstation.Server.Host.Components.Watchdog
//i changed this back from guids, hopefully i don't regret that
string JsonFile(string name) => String.Format(CultureInfo.InvariantCulture, "{0}.{1}", name, JsonPostfix);
+ var securityLevelToUse = launchParameters.SecurityLevel.Value;
+ switch (dmbProvider.CompileJob.MinimumSecurityLevel)
+ {
+ case DreamDaemonSecurity.Ultrasafe:
+ break;
+ case DreamDaemonSecurity.Safe:
+ if (securityLevelToUse == DreamDaemonSecurity.Ultrasafe)
+ securityLevelToUse = DreamDaemonSecurity.Safe;
+ break;
+ case DreamDaemonSecurity.Trusted:
+ securityLevelToUse = DreamDaemonSecurity.Trusted;
+ break;
+ default:
+ throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Invalid DreamDaemonSecurity value: {0}", dmbProvider.CompileJob.MinimumSecurityLevel));
+ }
+
//setup interop files
var interopInfo = new JsonFile
{
@@ -140,6 +156,7 @@ namespace Tgstation.Server.Host.Components.Watchdog
ChatCommandsJson = JsonFile("chat_commands"),
ServerCommandsJson = JsonFile("server_commands"),
InstanceName = instance.Name,
+ SecurityLevel = securityLevelToUse,
Revision = new Api.Models.Internal.RevisionInformation
{
CommitSha = dmbProvider.CompileJob.RevisionInformation.CommitSha,
@@ -177,22 +194,6 @@ namespace Tgstation.Server.Host.Components.Watchdog
//more sanitization here cause it uses the same scheme
var parameters = String.Format(CultureInfo.InvariantCulture, "{2}={0}&{3}={1}", byondTopicSender.SanitizeString(application.Version.ToString()), byondTopicSender.SanitizeString(interopJsonFile), byondTopicSender.SanitizeString(Constants.DMParamHostVersion), byondTopicSender.SanitizeString(Constants.DMParamInfoJson));
- var securityLevelToUse = launchParameters.SecurityLevel.Value;
- switch (dmbProvider.CompileJob.MinimumSecurityLevel)
- {
- case DreamDaemonSecurity.Ultrasafe:
- break;
- case DreamDaemonSecurity.Safe:
- if (securityLevelToUse == DreamDaemonSecurity.Ultrasafe)
- securityLevelToUse = DreamDaemonSecurity.Safe;
- break;
- case DreamDaemonSecurity.Trusted:
- securityLevelToUse = DreamDaemonSecurity.Trusted;
- break;
- default:
- throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Invalid DreamDaemonSecurity value: {0}", dmbProvider.CompileJob.MinimumSecurityLevel));
- }
-
//important to run on all ports to allow port changing
var arguments = String.Format(CultureInfo.InvariantCulture, "{0} -port {1} -ports 1-65535 {2}-close -{3} -verbose -public -params \"{4}\"",
dmbProvider.DmbName,