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,
            });
        }
Beispiel #2
0
        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);
        }