aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations')
-rw-r--r--Emby.Server.Implementations/ApplicationHost.cs2
-rw-r--r--Emby.Server.Implementations/Plugins/PluginManager.cs59
-rw-r--r--Emby.Server.Implementations/Updates/InstallationManager.cs15
3 files changed, 26 insertions, 50 deletions
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index 17cccdaf9..216cb5e75 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -396,7 +396,7 @@ namespace Emby.Server.Implementations
Logger.LogError("DI Loop detected in the attempted creation of {Type}", type.FullName);
foreach (var entry in _creatingInstances)
{
- Logger.LogError("Called from: {stack}", entry.FullName);
+ Logger.LogError("Called from: {TypeName}", entry.FullName);
}
_pluginManager.FailPlugin(type.Assembly);
diff --git a/Emby.Server.Implementations/Plugins/PluginManager.cs b/Emby.Server.Implementations/Plugins/PluginManager.cs
index 010d2829c..944b74652 100644
--- a/Emby.Server.Implementations/Plugins/PluginManager.cs
+++ b/Emby.Server.Implementations/Plugins/PluginManager.cs
@@ -96,9 +96,10 @@ namespace Emby.Server.Implementations
foreach (var file in plugin.DllFiles)
{
+ Assembly assembly;
try
{
- plugin.Assembly = Assembly.LoadFrom(file);
+ assembly = Assembly.LoadFrom(file);
}
catch (FileLoadException ex)
{
@@ -107,8 +108,8 @@ namespace Emby.Server.Implementations
continue;
}
- _logger.LogInformation("Loaded assembly {Assembly} from {Path}", plugin.Assembly.FullName, file);
- yield return plugin.Assembly;
+ _logger.LogInformation("Loaded assembly {Assembly} from {Path}", assembly.FullName, file);
+ yield return assembly;
}
}
}
@@ -203,6 +204,7 @@ namespace Emby.Server.Implementations
return true;
}
+ _logger.LogWarning("Unable to delete {Path}, so marking as deleteOnStartup.", plugin.Path);
// Unable to delete, so disable.
return ChangePluginState(plugin, PluginStatus.DeleteOnStartup);
}
@@ -310,10 +312,7 @@ namespace Emby.Server.Implementations
throw new ArgumentNullException(nameof(assembly));
}
- var plugin = _plugins.Where(
- p => assembly.Equals(p.Assembly)
- || string.Equals(assembly.Location, assembly.Location, StringComparison.OrdinalIgnoreCase))
- .FirstOrDefault();
+ var plugin = _plugins.Where(p => p.DllFiles.Contains(assembly.Location)).FirstOrDefault();
if (plugin == null)
{
// A plugin's assembly didn't cause this issue, so ignore it.
@@ -366,20 +365,7 @@ namespace Emby.Server.Implementations
}
plugin.Manifest.Status = state;
- SaveManifest(plugin.Manifest, plugin.Path);
- try
- {
- var data = JsonSerializer.Serialize(plugin.Manifest, _jsonOptions);
- File.WriteAllText(Path.Combine(plugin.Path, "meta.json"), data, Encoding.UTF8);
- return true;
- }
-#pragma warning disable CA1031 // Do not catch general exception types
- catch (Exception e)
-#pragma warning restore CA1031 // Do not catch general exception types
- {
- _logger.LogWarning(e, "Unable to disable plugin {Path}", plugin.Path);
- return false;
- }
+ return SaveManifest(plugin.Manifest, plugin.Path);
}
/// <summary>
@@ -509,15 +495,14 @@ namespace Emby.Server.Implementations
// Attempt a cleanup of old folders.
try
{
- _logger.LogDebug("Deleting {Path}", plugin.Path);
Directory.Delete(plugin.Path, true);
+ _logger.LogDebug("Deleted {Path}", plugin.Path);
_plugins.Remove(plugin);
}
#pragma warning disable CA1031 // Do not catch general exception types
- catch (Exception e)
+ catch
#pragma warning restore CA1031 // Do not catch general exception types
{
- _logger.LogWarning(e, "Unable to delete {Path}", plugin.Path);
return false;
}
@@ -670,21 +655,23 @@ namespace Emby.Server.Implementations
_logger.LogWarning(e, "Unable to delete {Path}", path);
}
- versions.RemoveAt(x);
- }
-
- if (!cleaned)
- {
- if (manifest == null)
+ if (cleaned)
{
- _logger.LogWarning("Unable to disable plugin {Path}", entry.Path);
- continue;
+ versions.RemoveAt(x);
}
-
- if (manifest.Status != PluginStatus.DeleteOnStartup)
+ else
{
- manifest.Status = PluginStatus.DeleteOnStartup;
- SaveManifest(manifest, entry.Path);
+ if (manifest == null)
+ {
+ _logger.LogWarning("Unable to disable plugin {Path}", entry.Path);
+ continue;
+ }
+
+ if (manifest.Status != PluginStatus.DeleteOnStartup)
+ {
+ manifest.Status = PluginStatus.DeleteOnStartup;
+ SaveManifest(manifest, entry.Path);
+ }
}
}
}
diff --git a/Emby.Server.Implementations/Updates/InstallationManager.cs b/Emby.Server.Implementations/Updates/InstallationManager.cs
index b7bbbd348..fc80bdd75 100644
--- a/Emby.Server.Implementations/Updates/InstallationManager.cs
+++ b/Emby.Server.Implementations/Updates/InstallationManager.cs
@@ -8,7 +8,6 @@ using System.Linq;
using System.Net.Http;
using System.Net.Http.Json;
using System.Security.Cryptography;
-using System.Text;
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
@@ -106,18 +105,8 @@ namespace Emby.Server.Implementations.Updates
try
{
List<PackageInfo>? packages;
- var uri = new Uri(manifest);
- if (uri.Scheme.StartsWith("http", StringComparison.OrdinalIgnoreCase))
- {
- packages = await _httpClientFactory.CreateClient(NamedClient.Default)
- .GetFromJsonAsync<List<PackageInfo>>(uri, _jsonSerializerOptions, cancellationToken).ConfigureAwait(false);
- }
- else
- {
- // Local Packages
- var data = File.ReadAllText(manifest, Encoding.UTF8);
- packages = JsonSerializer.Deserialize<List<PackageInfo>>(data, _jsonSerializerOptions);
- }
+ packages = await _httpClientFactory.CreateClient(NamedClient.Default)
+ .GetFromJsonAsync<List<PackageInfo>>(new Uri(manifest), _jsonSerializerOptions, cancellationToken).ConfigureAwait(false);
if (packages == null)
{