diff --git a/src/Tgstation.Server.Host/Components/StaticFiles/Configuration.cs b/src/Tgstation.Server.Host/Components/StaticFiles/Configuration.cs index f42b4cc7e2..eecb350e43 100644 --- a/src/Tgstation.Server.Host/Components/StaticFiles/Configuration.cs +++ b/src/Tgstation.Server.Host/Components/StaticFiles/Configuration.cs @@ -298,8 +298,7 @@ namespace Tgstation.Server.Host.Components.StaticFiles string GetFileSha() { var content = synchronousIOManager.ReadFile(path); - using var sha1 = SHA1.Create(); - return String.Join(String.Empty, sha1.ComputeHash(content).Select(b => b.ToString("x2", CultureInfo.InvariantCulture))); + return String.Join(String.Empty, SHA1.HashData(content).Select(b => b.ToString("x2", CultureInfo.InvariantCulture))); } var originalSha = GetFileSha(); @@ -406,12 +405,10 @@ namespace Tgstation.Server.Host.Components.StaticFiles var fileName = ioManager.GetFileName(file); // need to normalize - bool ignored; - if (platformIdentifier.IsWindows) - ignored = ignoreFiles.Any(y => fileName.ToUpperInvariant() == y.ToUpperInvariant()); - else - ignored = ignoreFiles.Any(y => fileName == y); - + var fileComparison = platformIdentifier.IsWindows + ? StringComparison.OrdinalIgnoreCase + : StringComparison.Ordinal; + var ignored = ignoreFiles.Any(y => fileName.Equals(y, fileComparison)); if (ignored) { logger.LogTrace("Ignoring static file {fileName}...", fileName); @@ -442,12 +439,14 @@ namespace Tgstation.Server.Host.Components.StaticFiles using (var reader = new StringReader(ignoreFileText)) { cancellationToken.ThrowIfCancellationRequested(); - var line = await reader.ReadLineAsync(); + var line = await reader.ReadLineAsync(cancellationToken); if (!String.IsNullOrEmpty(line)) ignoreFiles.Add(line); } - await ValueTaskExtensions.WhenAll(SymlinkBase(true), SymlinkBase(false)); + var filesSymlinkTask = SymlinkBase(true); + var dirsSymlinkTask = SymlinkBase(false); + await ValueTaskExtensions.WhenAll(filesSymlinkTask, dirsSymlinkTask); } } @@ -615,7 +614,7 @@ namespace Tgstation.Server.Host.Components.StaticFiles scriptName => x.StartsWith(scriptName, StringComparison.Ordinal))) .ToList(); - if (!scriptFiles.Any()) + if (scriptFiles.Count == 0) { logger.LogTrace("No event scripts starting with \"{scriptName}\" detected", String.Join("\" or \"", scriptNames)); return; @@ -710,19 +709,19 @@ namespace Tgstation.Server.Host.Components.StaticFiles return; await ioManager.CreateDirectory(CodeModificationsSubdirectory, cancellationToken); - await ValueTaskExtensions.WhenAll( - ioManager.WriteAllBytes( - ioManager.ConcatPath( - CodeModificationsSubdirectory, - CodeModificationsHeadFile), - Encoding.UTF8.GetBytes(DefaultHeadInclude), - cancellationToken), - ioManager.WriteAllBytes( - ioManager.ConcatPath( - CodeModificationsSubdirectory, - CodeModificationsTailFile), - Encoding.UTF8.GetBytes(DefaultTailInclude), - cancellationToken)); + var headWriteTask = ioManager.WriteAllBytes( + ioManager.ConcatPath( + CodeModificationsSubdirectory, + CodeModificationsHeadFile), + Encoding.UTF8.GetBytes(DefaultHeadInclude), + cancellationToken); + var tailWriteTask = ioManager.WriteAllBytes( + ioManager.ConcatPath( + CodeModificationsSubdirectory, + CodeModificationsTailFile), + Encoding.UTF8.GetBytes(DefaultTailInclude), + cancellationToken); + await ValueTaskExtensions.WhenAll(headWriteTask, tailWriteTask); } return Task.WhenAll( diff --git a/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs b/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs index 60b3deb05f..4fb3e1677f 100644 --- a/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs +++ b/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs @@ -748,8 +748,9 @@ namespace Tgstation.Server.Host.Components.Watchdog try { var sessionEventTask = relayToSession ? ((IEventConsumer)this).HandleEvent(eventType, parameters, false, cancellationToken) : ValueTask.CompletedTask; + var eventConsumerTask = eventConsumer.HandleEvent(eventType, parameters, false, cancellationToken); await ValueTaskExtensions.WhenAll( - eventConsumer.HandleEvent(eventType, parameters, false, cancellationToken), + eventConsumerTask, sessionEventTask); } catch (JobException ex)