Propagate touch requests via intermediate servers

This commit is contained in:
Loporrit
2024-09-11 06:47:41 +00:00
parent 1f57510bb7
commit b51cd61e4b

View File

@@ -27,6 +27,7 @@ public class Startup
{ {
private bool _isMain; private bool _isMain;
private bool _isDistributionNode; private bool _isDistributionNode;
private bool _hasDistributionUpstream;
private readonly ILogger<Startup> _logger; private readonly ILogger<Startup> _logger;
public Startup(IConfiguration configuration, ILogger<Startup> logger) public Startup(IConfiguration configuration, ILogger<Startup> logger)
@@ -35,6 +36,7 @@ public class Startup
_logger = logger; _logger = logger;
var mareSettings = Configuration.GetRequiredSection("MareSynchronos"); var mareSettings = Configuration.GetRequiredSection("MareSynchronos");
_isDistributionNode = mareSettings.GetValue(nameof(StaticFilesServerConfiguration.IsDistributionNode), false); _isDistributionNode = mareSettings.GetValue(nameof(StaticFilesServerConfiguration.IsDistributionNode), false);
_hasDistributionUpstream = !string.IsNullOrEmpty(mareSettings.GetValue(nameof(StaticFilesServerConfiguration.DistributionFileServerAddress), string.Empty));
_isMain = string.IsNullOrEmpty(mareSettings.GetValue(nameof(StaticFilesServerConfiguration.MainFileServerAddress), string.Empty)) && _isDistributionNode; _isMain = string.IsNullOrEmpty(mareSettings.GetValue(nameof(StaticFilesServerConfiguration.MainFileServerAddress), string.Empty)) && _isDistributionNode;
} }
@@ -175,7 +177,7 @@ public class Startup
services.AddHostedService(p => (MareConfigurationServiceClient<StaticFilesServerConfiguration>)p.GetService<IConfigurationService<StaticFilesServerConfiguration>>()); services.AddHostedService(p => (MareConfigurationServiceClient<StaticFilesServerConfiguration>)p.GetService<IConfigurationService<StaticFilesServerConfiguration>>());
} }
if (_isDistributionNode) if (!_hasDistributionUpstream)
{ {
services.AddSingleton<ITouchHashService, ColdTouchHashService>(); services.AddSingleton<ITouchHashService, ColdTouchHashService>();
services.AddHostedService(p => p.GetService<ITouchHashService>()); services.AddHostedService(p => p.GetService<ITouchHashService>());