Exemple #1
0
        private static void DetermineSupport()
        {
            Console.Write("Determining client hook method...");
            switch (OSVersion)
            {
            case OSVersionType.Win8:
                NameServerHookMethod = NameServerHookMethodType.CacheHook; break;

            default:     // case OSVersionType.Win7:
                NameServerHookMethod = NameServerHookMethodType.ChangeNS; break;
            }
            Console.WriteLine(" {0}", NameServerHookMethod);
        }
Exemple #2
0
        private void InsertCacheHook()
        {
            var key = GetDnsCacheConfigKey(true);

            if (key != null)
            {
                var         subs  = key.GetSubKeyNames();
                RegistryKey found = null;
                foreach (string name in subs)
                {
                    var configKey = Registry.LocalMachine.OpenSubKey(DnsPolicyCacheConfigName + name);
                    var val       = configKey.GetValue("Name", null) as string[];
                    if (name == configGUID)
                    {
                        if (found != null) // duplicate found
                        {
                            DeleteConfigKey(key, name);
                        }
                        else if (!val.Contains(".bit"))
                        {
                            found = null;
                            DeleteConfigKey(key, name);
                        }
                        else
                        {
                            found = configKey;
                        }
                    }
                    else if (val.Contains(".bit"))
                    {
                        DeleteConfigKey(key, name);
                    }
                }
                if (key != null && found == null)
                {
                    InstallDnsCacheConfigKeys(key);
                }
            }
            else
            {
                RemoveCacheHook();
                NameServerHookMethod = NameServerHookMethodType.ChangeNS;
                Console.WriteLine("CacheConfig Failed: switching to {0}", NameServerHookMethod);
            }
        }