private async Task <PartialToolUpdates> CheckForUpdatesAsync(bool allowExistingTools) { var privoxy = await CheckForUpdateAsync( ToolUtility.GetPrivoxyToolSettings(_settings), _privoxyFetcher, allowExistingTools).ConfigureAwait(false); var tor = await CheckForUpdateAsync( ToolUtility.GetTorToolSettings(_settings), _torFetcher, allowExistingTools).ConfigureAwait(false); return(new PartialToolUpdates { Privoxy = privoxy, Tor = tor, }); }
private async Task InitializeAsync() { _settings.ZippedToolsDirectory = GetAbsoluteCreate(_settings.ZippedToolsDirectory); _settings.ExtractedToolsDirectory = GetAbsoluteCreate(_settings.ExtractedToolsDirectory); var torToolSettings = ToolUtility.GetTorToolSettings(_settings); var privoxyToolSettings = ToolUtility.GetPrivoxyToolSettings(_settings); _tor = await ExtractAsync(torToolSettings).ConfigureAwait(false); _privoxy = await ExtractAsync(privoxyToolSettings).ConfigureAwait(false); if (_settings.TorSettings.ControlPassword != null && _settings.TorSettings.HashedControlPassword == null) { _settings.TorSettings.HashedControlPassword = _torPasswordHasher.HashPassword(_settings.TorSettings.ControlPassword); } await ConfigureAndStartAsync(_tor, new TorConfigurationDictionary()).ConfigureAwait(false); await ConfigureAndStartAsync(_privoxy, new PrivoxyConfigurationDictionary()).ConfigureAwait(false); WaitForConnect(TorHostName, _settings.TorSettings.SocksPort); WaitForConnect(_settings.PrivoxySettings.ListenAddress, _settings.PrivoxySettings.Port); }