diff --git a/Aaru.CommonTypes/PluginRegister.cs b/Aaru.CommonTypes/PluginRegister.cs
index bd77be727..7fe4135ca 100644
--- a/Aaru.CommonTypes/PluginRegister.cs
+++ b/Aaru.CommonTypes/PluginRegister.cs
@@ -257,7 +257,8 @@ public class PluginRegister
/// The filter that allows reading the specified path
public IFilter GetFilter(string path)
{
- IFilter noFilter = null;
+ ITransactionTracer transaction = SentrySdk.StartTransaction("GetPlugin", "DetectFilter");
+ IFilter noFilter = null;
foreach(IFilter filter in Filters.Values)
{
@@ -269,7 +270,12 @@ public class PluginRegister
var foundFilter = (IFilter)filter.GetType().GetConstructor(Type.EmptyTypes)?.Invoke([]);
- if(foundFilter?.Open(path) == ErrorNumber.NoError) return foundFilter;
+ if(foundFilter?.Open(path) == ErrorNumber.NoError)
+ {
+ transaction.Finish();
+
+ return foundFilter;
+ }
}
else
noFilter = filter;
@@ -281,10 +287,17 @@ public class PluginRegister
}
}
- if(!noFilter?.Identify(path) == true) return null;
+ if(!noFilter?.Identify(path) == true)
+ {
+ transaction.Finish();
+
+ return null;
+ }
noFilter?.Open(path);
+ transaction.Finish();
+
return noFilter;
}
}
\ No newline at end of file
diff --git a/Aaru.Core/ArchiveFormat.cs b/Aaru.Core/ArchiveFormat.cs
index cdc693472..9ab8276f2 100644
--- a/Aaru.Core/ArchiveFormat.cs
+++ b/Aaru.Core/ArchiveFormat.cs
@@ -48,6 +48,8 @@ public static class ArchiveFormat
/// Detected archive plugin
public static IArchive Detect(IFilter archiveFilter)
{
+ ITransactionTracer transaction = SentrySdk.StartTransaction("GetPlugin", "DetectArchive");
+
try
{
PluginRegister plugins = PluginRegister.Singleton;
@@ -76,12 +78,16 @@ public static class ArchiveFormat
}
// Not recognized
+ transaction.Finish();
+
return format;
}
catch(Exception ex)
{
SentrySdk.CaptureException(ex);
+ transaction.Finish();
+
return null;
}
}
diff --git a/Aaru.Core/Filesystems.cs b/Aaru.Core/Filesystems.cs
index e056e0e2d..09f96cf8f 100644
--- a/Aaru.Core/Filesystems.cs
+++ b/Aaru.Core/Filesystems.cs
@@ -36,6 +36,7 @@ using System.Linq;
using Aaru.CommonTypes;
using Aaru.CommonTypes.Interfaces;
using Aaru.Logging;
+using Sentry;
namespace Aaru.Core;
@@ -53,7 +54,8 @@ public static class Filesystems
public static void Identify(IMediaImage imagePlugin, out List idPlugins, Partition partition,
bool getGuid = false)
{
- PluginRegister plugins = PluginRegister.Singleton;
+ ITransactionTracer transaction = SentrySdk.StartTransaction("GetPlugin", "DetectFilesystem");
+ PluginRegister plugins = PluginRegister.Singleton;
idPlugins = [];
@@ -66,13 +68,12 @@ public static class Filesystems
}
catch(Exception ex)
{
- AaruLogging
- .Error(Localization.Core.Filesystems_Identify_Error,
- plugin.Name);
+ AaruLogging.Error(Localization.Core.Filesystems_Identify_Error, plugin.Name);
- AaruLogging.Exception(ex, Localization.Core.Filesystems_Identify_Error,
- plugin.Name);
+ AaruLogging.Exception(ex, Localization.Core.Filesystems_Identify_Error, plugin.Name);
}
}
+
+ transaction.Finish();
}
}
\ No newline at end of file
diff --git a/Aaru.Core/ImageFormat.cs b/Aaru.Core/ImageFormat.cs
index bd7dbb9bc..9de2b1a65 100644
--- a/Aaru.Core/ImageFormat.cs
+++ b/Aaru.Core/ImageFormat.cs
@@ -48,6 +48,8 @@ public static class ImageFormat
/// Detected image plugin
public static IBaseImage Detect(IFilter imageFilter)
{
+ ITransactionTracer transaction = SentrySdk.StartTransaction("GetPlugin", "DetectImageFormat");
+
try
{
PluginRegister plugins = PluginRegister.Singleton;
@@ -102,7 +104,12 @@ public static class ImageFormat
}
}
- if(imageFormat != null) return imageFormat;
+ if(imageFormat != null)
+ {
+ transaction.Finish();
+
+ return imageFormat;
+ }
// Check only RAW plugin
foreach(IMediaImage imagePlugin in plugins.MediaImages.Values)
@@ -128,12 +135,16 @@ public static class ImageFormat
}
// Still not recognized
+ transaction.Finish();
+
return imageFormat;
}
catch(Exception ex)
{
SentrySdk.CaptureException(ex);
+ transaction.Finish();
+
return null;
}
}