Skip to content

Commit 45f7748

Browse files
committed
Add LoadResolvers
1 parent 2f3693e commit 45f7748

1 file changed

Lines changed: 20 additions & 79 deletions

File tree

SimpleDnsCrypt/ViewModels/MainViewModel.cs

Lines changed: 20 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public bool IsDnsCryptAutomaticModeEnabled
127127

128128
DnscryptProxyConfiguration.server_names = null;
129129
SaveDnsCryptConfiguration();
130-
GetAvailableResolvers();
130+
LoadResolvers();
131131
HandleService();
132132
}
133133
else
@@ -316,7 +316,7 @@ public void TabControl_SelectionChanged(SelectionChangedEventArgs selectionChang
316316
break;
317317
case "resolverTab":
318318
SelectedTab = Tabs.ResolverTab;
319-
GetAvailableResolvers();
319+
LoadResolvers();
320320
break;
321321
case "advancedSettingsTab":
322322
SelectedTab = Tabs.AdvancedSettingsTab;
@@ -642,87 +642,28 @@ public void ResolverClicked(AvailableResolver resolver)
642642
}
643643
}
644644

645-
private void GetAvailableResolvers()
646-
{
647-
_resolvers.Clear();
648-
var resolvers = DnsCryptProxyManager.GetAvailableResolvers();
649-
_resolvers.AddRange(resolvers);
650-
651-
}
652-
653-
private void GetAllResolvers()
645+
/// <summary>
646+
/// Get the list of available resolvers for the enabled filters.
647+
/// </summary>
648+
/// <remarks>Current solution is not very effective.</remarks>
649+
private void LoadResolvers()
654650
{
655-
656-
var resolvers = DnsCryptProxyManager.GetAllResolvers();
657-
658-
if (resolvers != null)
659-
{
660-
661-
}
662-
/*var serverNames = new List<string>();
663-
if (DnscryptProxyConfiguration.server_names != null && DnscryptProxyConfiguration.server_names.Count > 0)
664-
{
665-
serverNames = DnscryptProxyConfiguration.server_names.ToList();
666-
}
667-
668-
if (DnscryptProxyConfiguration?.sources == null) return;
669-
var sources = DnscryptProxyConfiguration.sources;
670-
foreach (var source in sources)
651+
var allResolvers = DnsCryptProxyManager.GetAllResolvers();
652+
var availableResolvers = DnsCryptProxyManager.GetAvailableResolvers();
653+
foreach (var resolver in availableResolvers)
671654
{
672-
if (string.IsNullOrEmpty(source.Value.cache_file)) continue;
673-
674-
var cacheFile = source.Value.cache_file;
675-
var cacheFileFullPath = Path.Combine(Directory.GetCurrentDirectory(), Global.DnsCryptProxyFolder, cacheFile);
676-
if (!File.Exists(cacheFileFullPath)) continue;
677-
var content = File.ReadAllText(cacheFileFullPath);
678-
if (string.IsNullOrEmpty(content)) continue;
679-
var rawStampList = content.Split(new[] { '#', '#' }, StringSplitOptions.RemoveEmptyEntries);
680-
_resolvers.Clear();
681-
foreach (var rawStampListEntry in rawStampList)
655+
AvailableResolver first = null;
656+
foreach (var r in allResolvers)
682657
{
683-
var def = rawStampListEntry.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
684-
if (def.Length != 3) continue;
685-
var server = new Resolver
686-
{
687-
Group = source.Key,
688-
Name = def[0].Trim(),
689-
Comment = def[1].Trim(),
690-
Stamp = new Stamp(def[2].Trim())
691-
};
692-
693-
if (DnscryptProxyConfiguration.require_nolog)
694-
{
695-
if (!server.Stamp.NoLog)
696-
{
697-
continue;
698-
}
699-
}
700-
701-
if (DnscryptProxyConfiguration.require_dnssec)
702-
{
703-
if (!server.Stamp.DnsSec)
704-
{
705-
continue;
706-
}
707-
}
708-
709-
if (!DnscryptProxyConfiguration.ipv6_servers)
710-
{
711-
if (server.Stamp.Ipv6)
712-
{
713-
continue;
714-
}
715-
}
716-
717-
if (serverNames.Contains(server.Name))
718-
{
719-
server.IsInServerList = true;
720-
}
721-
722-
_resolvers.Add(server);
723-
658+
if (!r.Name.Equals(resolver.Name)) continue;
659+
first = r;
660+
break;
724661
}
725-
}*/
662+
663+
if (first != null) first.IsInServerList = true;
664+
}
665+
_resolvers.Clear();
666+
_resolvers.AddRange(allResolvers);
726667
}
727668

728669
#endregion

0 commit comments

Comments
 (0)