From c7174255498e28272fbe6d4d6867a774a3327eff Mon Sep 17 00:00:00 2001
From: AmbulantRex <21176662+AmbulantRex@users.noreply.github.com>
Date: Sun, 16 Apr 2023 18:47:57 -0600
Subject: Remove unnecessary type extension and handle feedback.
---
Emby.Server.Implementations/Plugins/PluginManager.cs | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
(limited to 'Emby.Server.Implementations')
diff --git a/Emby.Server.Implementations/Plugins/PluginManager.cs b/Emby.Server.Implementations/Plugins/PluginManager.cs
index 10d5ea906e..48584ae0cb 100644
--- a/Emby.Server.Implementations/Plugins/PluginManager.cs
+++ b/Emby.Server.Implementations/Plugins/PluginManager.cs
@@ -432,7 +432,7 @@ namespace Emby.Server.Implementations.Plugins
ImagePath = imagePath
};
- if (!ReconcileManifest(manifest, path))
+ if (!await ReconcileManifest(manifest, path))
{
// An error occurred during reconciliation and saving could be undesirable.
return false;
@@ -448,7 +448,7 @@ namespace Emby.Server.Implementations.Plugins
/// The to reconcile against.
/// The plugin path.
/// The reconciled .
- private bool ReconcileManifest(PluginManifest manifest, string path)
+ private async Task ReconcileManifest(PluginManifest manifest, string path)
{
try
{
@@ -459,8 +459,9 @@ namespace Emby.Server.Implementations.Plugins
return true;
}
- var data = File.ReadAllBytes(metafile);
- var localManifest = JsonSerializer.Deserialize(data, _jsonOptions) ?? new PluginManifest();
+ using var metaStream = File.OpenRead(metafile);
+ var localManifest = await JsonSerializer.DeserializeAsync(metaStream, _jsonOptions);
+ localManifest ??= new PluginManifest();
if (!Equals(localManifest.Id, manifest.Id))
{
@@ -483,7 +484,7 @@ namespace Emby.Server.Implementations.Plugins
manifest.Overview = string.IsNullOrEmpty(localManifest.Overview) ? manifest.Overview : localManifest.Overview;
manifest.Owner = string.IsNullOrEmpty(localManifest.Owner) ? manifest.Owner : localManifest.Owner;
manifest.TargetAbi = string.IsNullOrEmpty(localManifest.TargetAbi) ? manifest.TargetAbi : localManifest.TargetAbi;
- manifest.Timestamp = localManifest.Timestamp.IsNullOrDefault() ? manifest.Timestamp : localManifest.Timestamp;
+ manifest.Timestamp = localManifest.Timestamp.Equals(default) ? manifest.Timestamp : localManifest.Timestamp;
manifest.ImagePath = string.IsNullOrEmpty(localManifest.ImagePath) ? manifest.ImagePath : localManifest.ImagePath;
manifest.Assemblies = localManifest.Assemblies;
@@ -842,7 +843,7 @@ namespace Emby.Server.Implementations.Plugins
var canonicalized = Path.Combine(plugin.Path, path).Canonicalize();
// Ensure we stay in the plugin directory.
- if (!canonicalized.StartsWith(plugin.Path.NormalizePath()!, StringComparison.Ordinal))
+ if (!canonicalized.StartsWith(plugin.Path.NormalizePath(), StringComparison.Ordinal))
{
_logger.LogError("Assembly path {Path} is not inside the plugin directory.", path);
return false;
--
cgit v1.2.3