@@ -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