void.cat/VoidCat/Services/VirusScanner/VirusScannerStartup.cs

35 lines
1.1 KiB
C#
Raw Normal View History

2022-03-07 13:38:28 +00:00
using nClam;
using VoidCat.Model;
using VoidCat.Services.Abstractions;
namespace VoidCat.Services.VirusScanner;
public static class VirusScannerStartup
{
public static void AddVirusScanner(this IServiceCollection services, VoidSettings settings)
{
2022-06-13 10:29:16 +00:00
if (settings.Postgres != default)
{
services.AddTransient<IVirusScanStore, PostgresVirusScanStore>();
}
else
{
services.AddTransient<IVirusScanStore, CacheVirusScanStore>();
}
2022-03-07 14:43:19 +00:00
2022-03-07 13:38:28 +00:00
var avSettings = settings.VirusScanner;
if (avSettings != default)
{
// load ClamAV scanner
if (avSettings.ClamAV != default)
{
services.AddTransient<IClamClient>((_) =>
2022-03-07 14:43:19 +00:00
new ClamClient(avSettings.ClamAV.Endpoint.Host, avSettings.ClamAV.Endpoint.Port)
{
MaxStreamSize = avSettings.ClamAV.MaxStreamSize ?? 26240000
});
2022-03-07 13:38:28 +00:00
services.AddTransient<IVirusScanner, ClamAvScanner>();
}
}
}
}