コード例 #1
0
ファイル: PatchHelper.cs プロジェクト: z0day/SimpleDnsCrypt
        public static bool Patch()
        {
            var version = VersionHelper.PublishVersion;

            if (!DnscryptProxyConfigurationManager.LoadConfiguration())
            {
                return(false);
            }
            if (version.Equals("0.6.5"))
            {
                //added: netprobe_address = '255.255.255.0:53'
                //changed: netprobe_timeout = 0
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_address = "255.255.255.0:53";
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_timeout = 0;
                return(DnscryptProxyConfigurationManager.SaveConfiguration());
            }
            if (version.Equals("0.6.6"))
            {
                //changed: netprobe_address = '9.9.9.9:53'
                //changed: netprobe_timeout = 60
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_address = "9.9.9.9:53";
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_timeout = 60;
                return(DnscryptProxyConfigurationManager.SaveConfiguration());
            }
            return(false);
        }
コード例 #2
0
        public static bool Patch()
        {
            var version = VersionHelper.PublishVersion;

            if (!DnscryptProxyConfigurationManager.LoadConfiguration())
            {
                return(false);
            }
            if (version.Equals("0.6.5"))
            {
                //added: netprobe_address = '255.255.255.0:53'
                //changed: netprobe_timeout = 0
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_address = "255.255.255.0:53";
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_timeout = 0;
                return(DnscryptProxyConfigurationManager.SaveConfiguration());
            }
            if (version.Equals("0.6.6"))
            {
                //changed: netprobe_address = '9.9.9.9:53'
                //changed: netprobe_timeout = 60
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_address = "9.9.9.9:53";
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_timeout = 60;
                return(DnscryptProxyConfigurationManager.SaveConfiguration());
            }
            if (version.Equals("0.6.8") || version.Equals("0.6.9"))
            {
                //changed: timeout = 5000
                //added: reject_ttl = 600
                //changed: cache_size = 1024
                //changed: cache_min_ttl = 2400
                //added: cache_neg_min_ttl = 60
                //added: cache_neg_max_ttl = 600
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.timeout           = 5000;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.reject_ttl        = 600;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.cache_size        = 1024;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.cache_min_ttl     = 2400;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.cache_neg_min_ttl = 60;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.cache_neg_max_ttl = 600;
                var sources = DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.sources;
                if (!sources.ContainsKey("relays"))
                {
                    sources.Add("relays", new Models.Source
                    {
                        urls          = new string[] { "https://github.com/DNSCrypt/dnscrypt-resolvers/raw/master/v2/relays.md", "https://download.dnscrypt.info/resolvers-list/v2/relays.md" },
                        cache_file    = "relays.md",
                        minisign_key  = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3",
                        refresh_delay = 72,
                        prefix        = ""
                    });
                    DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.sources = sources;
                }
                return(DnscryptProxyConfigurationManager.SaveConfiguration());
            }
            return(false);
        }
コード例 #3
0
 private bool SetStaticStamp(string filter)
 {
     try
     {
         if (_dnscryptProxyConfiguration.Static != null)
         {
             if (_dnscryptProxyConfiguration.Static.ContainsKey(filter))
             {
                 return(true);
             }
             else
             {
                 RemoveStaticStamps();
                 DnscryptProxyConfigurationManager.LoadConfiguration();
                 _dnscryptProxyConfiguration = DnscryptProxyConfigurationManager.DnscryptProxyConfiguration;
                 var stamp = _appConfiguration.Proxies.Where(p => p.Name.Equals(filter)).FirstOrDefault();
                 if (stamp != null)
                 {
                     if (!string.IsNullOrEmpty(stamp.Stamp))
                     {
                         var decodedStamp = StampTools.Decode(stamp.Stamp);
                         if (decodedStamp != null)
                         {
                             _dnscryptProxyConfiguration.Static.Add(filter, new Static
                             {
                                 stamp = stamp.Stamp
                             });
                         }
                     }
                 }
                 DnscryptProxyConfigurationManager.DnscryptProxyConfiguration = _dnscryptProxyConfiguration;
                 DnscryptProxyConfigurationManager.SaveConfiguration();
                 return(true);
             }
         }
     }
     catch (Exception exception)
     {
         _logger.Log($"SetStaticStamp {exception.Message}", Category.Exception, Priority.High);
         return(false);
     }
     return(false);
 }
コード例 #4
0
        public static bool Patch()
        {
            var version = VersionHelper.PublishVersion;

            if (!DnscryptProxyConfigurationManager.LoadConfiguration())
            {
                return(false);
            }
            if (version.Equals("0.6.5"))
            {
                //added: netprobe_address = '255.255.255.0:53'
                //changed: netprobe_timeout = 0
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_address = "255.255.255.0:53";
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_timeout = 0;
                return(DnscryptProxyConfigurationManager.SaveConfiguration());
            }
            if (version.Equals("0.6.6"))
            {
                //changed: netprobe_address = '9.9.9.9:53'
                //changed: netprobe_timeout = 60
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_address = "9.9.9.9:53";
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.netprobe_timeout = 60;
                return(DnscryptProxyConfigurationManager.SaveConfiguration());
            }
            if (version.Equals("0.6.8"))
            {
                //changed: timeout = 5000
                //added: reject_ttl = 600
                //changed: cache_size = 1024
                //changed: cache_min_ttl = 2400
                //added: cache_neg_min_ttl = 60
                //added: cache_neg_max_ttl = 600
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.timeout           = 5000;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.reject_ttl        = 600;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.cache_size        = 1024;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.cache_min_ttl     = 2400;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.cache_neg_min_ttl = 60;
                DnscryptProxyConfigurationManager.DnscryptProxyConfiguration.cache_neg_max_ttl = 600;
                return(DnscryptProxyConfigurationManager.SaveConfiguration());
            }
            return(false);
        }
コード例 #5
0
 private bool RemoveStaticStamps()
 {
     try
     {
         if (_dnscryptProxyConfiguration.Static != null)
         {
             foreach (var key in _dnscryptProxyConfiguration.Static.Keys)
             {
                 _dnscryptProxyConfiguration.Static.Remove(key);
             }
             DnscryptProxyConfigurationManager.DnscryptProxyConfiguration = _dnscryptProxyConfiguration;
             DnscryptProxyConfigurationManager.SaveConfiguration();
             return(true);
         }
     }
     catch (Exception exception)
     {
         _logger.Log($"RemoveStaticStamps {exception.Message}", Category.Exception, Priority.High);
         return(false);
     }
     return(false);
 }