private async Task <LocalConfig.CDNAuthToken> GetCDNAuthToken(SteamApps instance, uint appID, uint depotID) { if (LocalConfig.CDNAuthTokens.ContainsKey(depotID)) { var token = LocalConfig.CDNAuthTokens[depotID]; if (DateTime.Now < token.Expiration) { return(token); } #if DEBUG Log.WriteDebug("Depot Downloader", "Token for depot {0} expired, will request a new one", depotID); } else { Log.WriteDebug("Depot Downloader", "Requesting a new token for depot {0}", depotID); #endif } var newToken = new LocalConfig.CDNAuthToken { Server = GetContentServer() }; var task = instance.GetCDNAuthToken(appID, depotID, newToken.Server); task.Timeout = TimeSpan.FromMinutes(15); SteamApps.CDNAuthTokenCallback tokenCallback; try { tokenCallback = await task; } catch (TaskCanceledException) { Log.WriteError("Depot Processor", "CDN auth token timed out for {0}", depotID); return(null); } #if DEBUG Log.WriteDebug("Depot Downloader", "Token for depot {0} result: {1}", depotID, tokenCallback.Result); #endif if (tokenCallback.Result != EResult.OK) { return(null); } newToken.Token = tokenCallback.Token; newToken.Expiration = tokenCallback.Expiration.Subtract(TimeSpan.FromMinutes(1)); LocalConfig.CDNAuthTokens[depotID] = newToken; SaveLocalConfig = true; return(newToken); }
private async Task<LocalConfig.CDNAuthToken> GetCDNAuthToken(uint depotID) { if (LocalConfig.CDNAuthTokens.ContainsKey(depotID)) { var token = LocalConfig.CDNAuthTokens[depotID]; if (DateTime.Now < token.Expiration) { return token; } #if DEBUG Log.WriteDebug("Depot Downloader", "Token for depot {0} expired, will request a new one", depotID); } else { Log.WriteDebug("Depot Downloader", "Requesting a new token for depot {0}", depotID); #endif } var newToken = new LocalConfig.CDNAuthToken { Server = GetContentServer() }; var task = Steam.Instance.Apps.GetCDNAuthToken(depotID, newToken.Server); task.Timeout = TimeSpan.FromMinutes(1); SteamApps.CDNAuthTokenCallback tokenCallback; try { tokenCallback = await task; } catch (TaskCanceledException) { Log.WriteError("Depot Processor", "CDN auth token timed out for {0}", depotID); return null; } if (tokenCallback.Result != EResult.OK) { return null; } newToken.Token = tokenCallback.Token; newToken.Expiration = tokenCallback.Expiration.Subtract(TimeSpan.FromMinutes(1)); LocalConfig.CDNAuthTokens[depotID] = newToken; SaveLocalConfig = true; return newToken; }