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); }
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); }
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); }