diff --git a/PrivaPub/Federation/Crawler/Crawler.cs b/PrivaPub/Federation/Crawler/Crawler.cs index 116bee2..daeea9c 100644 --- a/PrivaPub/Federation/Crawler/Crawler.cs +++ b/PrivaPub/Federation/Crawler/Crawler.cs @@ -28,12 +28,14 @@ namespace PrivaPub.Federation.Crawler readonly IJobQueue _queue; readonly IDomainBlocks _blocks; readonly IOptionsMonitor _options; + readonly IOptionsMonitor _federation; - public CrawlPlanner(IJobQueue queue, IDomainBlocks blocks, IOptionsMonitor options) + public CrawlPlanner(IJobQueue queue, IDomainBlocks blocks, IOptionsMonitor options, IOptionsMonitor federation = default) { _queue = queue; _blocks = blocks; _options = options; + _federation = federation; } public JobKind Kind => JobKind.CrawlPlan; @@ -55,7 +57,7 @@ namespace PrivaPub.Federation.Crawler if (!crawler.Enabled) return JobOutcome.Done; var now = DateTime.UtcNow; - foreach (var seed in PeerHosts.Filter(crawler.Seeds ?? new(), host => !_blocks.IsSuspended(host))) + foreach (var seed in PeerHosts.Filter(crawler.Seeds ?? new(), host => !_blocks.IsSuspended(host), _federation?.CurrentValue.AllowPrivateNetworks == true)) await DB.Default.Update() .Match(i => i.Host == seed) .Modify(b => b.SetOnInsert(i => i.Seen, "crawled"))