Exemple #1
0
        private async Task ResolveServerList()
        {
            DebugWrite("Resolving server list");

            IEnumerable <IPEndPoint> serverList = await ServerListProvider.FetchServerListAsync().ConfigureAwait(false);

            List <IPEndPoint> endpointList = serverList.ToList();

            if (endpointList.Count == 0 && canFetchDirectory)
            {
                DebugWrite("Server list provider had no entries, will query SteamDirectory");
                var directoryList = await SteamDirectory.LoadAsync(CellID).ConfigureAwait(false);

                endpointList = directoryList.ToList();
            }

            if (endpointList.Count == 0 && canFetchDirectory)
            {
                DebugWrite("Could not query SteamDirectory, falling back to cm0");
                var cm0 = await Dns.GetHostAddressesAsync("cm0.steampowered.com").ConfigureAwait(false);

                endpointList = cm0.Select(ipaddr => new IPEndPoint(ipaddr, 27015)).ToList();
            }

            DebugWrite("Resolved {0} servers", endpointList.Count);
            ReplaceList(endpointList);
        }