Example #1
0
        public static async Task <CDNConfigFile> GetCDNConfig(string hash)
        {
            var cdnConfig = new CDNConfigFile();

            string content = System.Text.Encoding.UTF8.GetString(await CDNCache.Get("config", hash));

            var cdnConfigLines = content.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);

            for (var i = 0; i < cdnConfigLines.Count(); i++)
            {
                if (cdnConfigLines[i].StartsWith("#") || cdnConfigLines[i].Length == 0)
                {
                    continue;
                }
                var cols = cdnConfigLines[i].Split(new string[] { " = " }, StringSplitOptions.RemoveEmptyEntries);
                switch (cols[0])
                {
                case "archives":
                    var archives = cols[1].Split(' ');
                    cdnConfig.archives = new MD5Hash[archives.Length];
                    for (var j = 0; j < archives.Length; j++)
                    {
                        cdnConfig.archives[j] = archives[j].ToByteArray().ToMD5();
                    }
                    break;

                default:
                    break;
                }
            }

            return(cdnConfig);
        }
Example #2
0
        public static async Task <CDNConfigFile> GetCDNConfig(string hash)
        {
            var cdnConfig = new CDNConfigFile();

            string content = System.Text.Encoding.UTF8.GetString(await CDNCache.Get("config", hash));

            var cdnConfigLines = content.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);

            for (var i = 0; i < cdnConfigLines.Count(); i++)
            {
                if (cdnConfigLines[i].StartsWith("#") || cdnConfigLines[i].Length == 0)
                {
                    continue;
                }
                var cols = cdnConfigLines[i].Split(new string[] { " = " }, StringSplitOptions.RemoveEmptyEntries);
                switch (cols[0])
                {
                case "archives":
                    var archives = cols[1].Split(' ');
                    cdnConfig.archives = new MD5Hash[archives.Length];
                    for (var j = 0; j < archives.Length; j++)
                    {
                        cdnConfig.archives[j] = archives[j].ToByteArray().ToMD5();
                    }
                    break;

                case "archive-group":
                    cdnConfig.archiveGroup = cols[1];
                    break;

                case "patch-archives":
                    if (cols.Length > 1)
                    {
                        var patchArchives = cols[1].Split(' ');
                        cdnConfig.patchArchives = new MD5Hash[patchArchives.Length];
                        for (var j = 0; j < patchArchives.Length; j++)
                        {
                            cdnConfig.patchArchives[j] = patchArchives[j].ToByteArray().ToMD5();
                        }
                    }
                    break;

                case "patch-archive-group":
                    cdnConfig.patchArchiveGroup = cols[1];
                    break;

                case "builds":
                    var builds = cols[1].Split(' ');
                    cdnConfig.builds = builds;
                    break;

                case "file-index":
                    cdnConfig.fileIndex = cols[1];
                    break;

                case "file-index-size":
                    cdnConfig.fileIndexSize = cols[1];
                    break;

                case "patch-file-index":
                    cdnConfig.patchFileIndex = cols[1];
                    break;

                case "patch-file-index-size":
                    cdnConfig.patchFileIndexSize = cols[1];
                    break;

                case "archives-index-size":
                case "patch-archives-index-size":
                    break;

                default:
                    Logger.WriteLine("!!!!!!!! Unknown cdnconfig variable '" + cols[0] + "'");
                    break;
                }
            }

            return(cdnConfig);
        }
Example #3
0
        public static CDNConfigFile GetCDNConfig(string url, string hash)
        {
            string content;
            var    cdnConfig = new CDNConfigFile();

            if (url.StartsWith("http"))
            {
                try
                {
                    content = Encoding.UTF8.GetString(CDN.Get(url + "/config/" + hash[0] + hash[1] + "/" + hash[2] + hash[3] + "/" + hash));
                }
                catch (Exception e)
                {
                    Logger.WriteLine("Error retrieving CDN config: " + e.Message);
                    return(cdnConfig);
                }
            }
            else
            {
                content = File.ReadAllText(Path.Combine(url, "config", "" + hash[0] + hash[1], "" + hash[2] + hash[3], hash));
            }


            var cdnConfigLines = content.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);

            for (var i = 0; i < cdnConfigLines.Count(); i++)
            {
                if (cdnConfigLines[i].StartsWith("#") || cdnConfigLines[i].Length == 0)
                {
                    continue;
                }
                var cols = cdnConfigLines[i].Split(new string[] { " = " }, StringSplitOptions.RemoveEmptyEntries);
                switch (cols[0])
                {
                case "archives":
                    var archives = cols[1].Split(' ');
                    cdnConfig.archives = new MD5Hash[archives.Length];
                    for (var j = 0; j < archives.Length; j++)
                    {
                        cdnConfig.archives[j] = archives[j].ToByteArray().ToMD5();
                    }
                    break;

                case "archive-group":
                    cdnConfig.archiveGroup = cols[1];
                    break;

                case "patch-archives":
                    if (cols.Length > 1)
                    {
                        var patchArchives = cols[1].Split(' ');
                        cdnConfig.patchArchives = new MD5Hash[patchArchives.Length];
                        for (var j = 0; j < patchArchives.Length; j++)
                        {
                            cdnConfig.patchArchives[j] = patchArchives[j].ToByteArray().ToMD5();
                        }
                    }
                    break;

                case "patch-archive-group":
                    cdnConfig.patchArchiveGroup = cols[1];
                    break;

                case "builds":
                    var builds = cols[1].Split(' ');
                    cdnConfig.builds = builds;
                    break;

                case "file-index":
                    cdnConfig.fileIndex = cols[1];
                    break;

                case "file-index-size":
                    cdnConfig.fileIndexSize = cols[1];
                    break;

                case "patch-file-index":
                    cdnConfig.patchFileIndex = cols[1];
                    break;

                case "patch-file-index-size":
                    cdnConfig.patchFileIndexSize = cols[1];
                    break;

                case "archives-index-size":
                case "patch-archives-index-size":
                    break;

                default:
                    Logger.WriteLine("!!!!!!!! Unknown cdnconfig variable '" + cols[0] + "'");
                    break;
                }
            }

            return(cdnConfig);
        }