From 18933118840774721e6ff839744648ccd4085e6e Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Mon, 7 Jun 2021 20:46:52 -0400 Subject: [PATCH 1/3] Fix NullReferenceException with null channel For web control panel --- .../Controllers/ControlPanelController.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Tgstation.Server.Host/Controllers/ControlPanelController.cs b/src/Tgstation.Server.Host/Controllers/ControlPanelController.cs index e9373c9d43..057d2afb2e 100644 --- a/src/Tgstation.Server.Host/Controllers/ControlPanelController.cs +++ b/src/Tgstation.Server.Host/Controllers/ControlPanelController.cs @@ -60,9 +60,9 @@ namespace Tgstation.Server.Host.Controllers controlPanelChannel = ControlPanelRoute; controlPanelChannel = controlPanelChannel - .Replace("${Major}", ApiHeaders.Version.Major.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) - .Replace("${Minor}", ApiHeaders.Version.Minor.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) - .Replace("${Patch}", ApiHeaders.Version.Build.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal); + ?.Replace("${Major}", ApiHeaders.Version.Major.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) + ?.Replace("${Minor}", ApiHeaders.Version.Minor.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) + ?.Replace("${Patch}", ApiHeaders.Version.Build.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal); return Json(new { From 8cf82ae82b47e06b590298d0840cee3ac1373c36 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Mon, 7 Jun 2021 21:18:37 -0400 Subject: [PATCH 2/3] Fix CI stumblefucking the default config file --- .github/workflows/ci-suite.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci-suite.yml b/.github/workflows/ci-suite.yml index dec7cac5d6..3645c25499 100644 --- a/.github/workflows/ci-suite.yml +++ b/.github/workflows/ci-suite.yml @@ -257,6 +257,7 @@ jobs: dotnet publish -c ${{ matrix.configuration }} -o ../../Artifacts/Service cd ../Tgstation.Server.Host dotnet publish -c ${{ matrix.configuration }} --no-build -o ../../Artifacts/Service/lib/Default + mv ../../Artifacts/Service/lib/Default/appsettings.yml ../../Artifacts/Service/appsettings.yml - name: Store Server Service if: ${{ matrix.configuration == 'Release' && matrix.watchdog-type == 'Basic' }} @@ -396,12 +397,14 @@ jobs: dotnet publish -c ${{ matrix.configuration }} -o ../../Artifacts/Console cd ../Tgstation.Server.Host dotnet publish -c ${{ matrix.configuration }}NoService --no-build -o ../../Artifacts/Console/lib/Default + mv ../../Artifacts/Console/lib/Default/appsettings.yml ../../Artifacts/Console/appsettings.yml - name: Package Server Update Package if: ${{ matrix.configuration == 'Release' && matrix.watchdog-type == 'System' && matrix.database-type == 'PostgresSql' }} run: | cd src/Tgstation.Server.Host dotnet publish -c ${{ matrix.configuration }}NoService --no-build -o ../../Artifacts/ServerUpdate + rm ../../Artifacts/ServerUpdate/appsettings.yml - name: Store Server Console if: ${{ matrix.configuration == 'Release' && matrix.watchdog-type == 'System' && matrix.database-type == 'MariaDB' }} From 43e4cc0478d77894c0d8403101bbdd962b789f7f Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Mon, 7 Jun 2021 21:18:55 -0400 Subject: [PATCH 3/3] Handle whitespace control panel channels properly --- .../Controllers/ControlPanelController.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Tgstation.Server.Host/Controllers/ControlPanelController.cs b/src/Tgstation.Server.Host/Controllers/ControlPanelController.cs index 057d2afb2e..6daf1ca2d4 100644 --- a/src/Tgstation.Server.Host/Controllers/ControlPanelController.cs +++ b/src/Tgstation.Server.Host/Controllers/ControlPanelController.cs @@ -58,11 +58,13 @@ namespace Tgstation.Server.Host.Controllers var controlPanelChannel = controlPanelConfiguration.Channel; if (controlPanelChannel == "local") controlPanelChannel = ControlPanelRoute; - - controlPanelChannel = controlPanelChannel - ?.Replace("${Major}", ApiHeaders.Version.Major.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) - ?.Replace("${Minor}", ApiHeaders.Version.Minor.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) - ?.Replace("${Patch}", ApiHeaders.Version.Build.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal); + else if (String.IsNullOrWhiteSpace(controlPanelChannel)) + controlPanelChannel = null; + else + controlPanelChannel = controlPanelChannel + .Replace("${Major}", ApiHeaders.Version.Major.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) + .Replace("${Minor}", ApiHeaders.Version.Minor.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) + .Replace("${Patch}", ApiHeaders.Version.Build.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal); return Json(new {