BF2Statistics.Redirector.RebuildDNSCache C# (CSharp) Method

RebuildDNSCache() public static method

Preforms the pings required to fill the dns cache. The reason we ping, is because once the HOSTS file is locked, any request made to a url (when the DNS cache is empty), will skip the hosts file, because it cant be read. If we ping first, then the DNS cache fills up with the IP addresses in the hosts file.
public static RebuildDNSCache ( CancellationToken CancelToken ) : void
CancelToken System.Threading.CancellationToken
return void
        public static void RebuildDNSCache(CancellationToken CancelToken)
        {
            // Must be hosts file!
            if (RedirectMethod == RedirectMode.DnsServer || !RedirectsEnabled) return;

            // Grab hosts file base
            HostsFile hFile = (RedirectMethod == RedirectMode.HostsFile)
                ? HostsFileSys as HostsFile
                : HostsFileIcs as HostsFile;

            // Rebuild the DNS cache with the hosts file redirects
            foreach (string hostname in hFile.GetLines().Keys)
            {
                // Quit on cancel
                if (CancelToken.IsCancellationRequested) return;

                // Only ping gamespy urls with the hosts ics file
                if (RedirectMethod == RedirectMode.HostsIcsFile && !hostname.Contains("gamespy"))
                    continue;

                // Attempt to ping the server
                try
                {
                    // Clear the record from the DNS cache
                    DnsFlushResolverCacheEntry(hostname);

                    // Ping server to get the IP address in the dns cache
                    Dns.GetHostAddresses(hostname);
                }
                catch
                {
                    continue;
                }
            }
        }