Esempio n. 1
0
        private async Task IsCircuitEstablishedAsync()
        {
            var controlPortClient = new TorControlClient(SharedFixture.HostAddress, SharedFixture.ControlPort, SharedFixture.ControlPortPassword);
            var yes = await controlPortClient.IsCircuitEstablishedAsync();

            Assert.True(yes);
        }
Esempio n. 2
0
        public SharedFixture()
        {
            // Initialize tests...

            Logger.SetMinimumLevel(LogLevel.Debug);
            Logger.SetModes(LogMode.Debug, LogMode.File);
            Logger.SetFilePath("TestLogs.txt");

            HostAddress         = "127.0.0.1";
            SocksPort           = 9050;
            ControlPort         = 9051;
            ControlPortPassword = "******";

            TorProcess = null;
            var torControl = new TorControlClient(HostAddress, ControlPort, ControlPortPassword);

            try
            {
                torControl.IsCircuitEstablishedAsync().GetAwaiter().GetResult();
            }
            catch
            {
                var torProcessStartInfo = new ProcessStartInfo("tor")
                {
                    Arguments              = $"SOCKSPort {SocksPort} ControlPort {ControlPort} HashedControlPassword 16:0978DBAF70EEB5C46063F3F6FD8CBC7A86DF70D2206916C1E2AE29EAF6",
                    UseShellExecute        = false,
                    CreateNoWindow         = true,
                    RedirectStandardOutput = true
                };

                TorProcess = Process.Start(torProcessStartInfo);

                Task.Delay(3000).GetAwaiter().GetResult();
                var established = false;
                var count       = 0;
                while (!established)
                {
                    if (count >= 21)
                    {
                        throw new TorException("Couldn't establish circuit in time.");
                    }
                    established = torControl.IsCircuitEstablishedAsync().GetAwaiter().GetResult();
                    Task.Delay(1000).GetAwaiter().GetResult();
                    count++;
                }
            }
        }