Ejemplo n.º 1
0
        /// <summary>
        /// Analyses proxy status, asynchronously.
        /// </summary>
        private void LoadDiagnostic()
        {
            var diagnostic = SystemProxyAnalyzer.Diagnose();

            RequiresProxy             = diagnostic.DefaultProxy != null;
            DoesNotRequireProxy       = !RequiresProxy;
            DefaultProxy              = diagnostic.DefaultProxy;
            ProxyAllowsSensitiveSites = diagnostic.SensitiveHttpGetRoute.HasFlag(RouteStatus.ProxyAcceptsName) &&
                                        diagnostic.SensitiveHttpsConnectRoute.HasFlag(RouteStatus.ProxyAcceptsName) &&
                                        diagnostic.SensitiveHttpConnectRoute.HasFlag(RouteStatus.ProxyAcceptsName);
            DnsResolvesLocal           = diagnostic.SafeLocalDns;
            DnsResolvesSensitiveSites  = diagnostic.SensitiveLocalDns;
            ProxyConnectsToSensitiveIP = diagnostic.SensitiveHttpsConnectRoute.HasFlag(RouteStatus.ProxyAcceptsAddress) &&
                                         diagnostic.SensitiveHttpConnectRoute.HasFlag(RouteStatus.ProxyAcceptsAddress);

            if (DnsResolvesSensitiveSites && ProxyConnectsToSensitiveIP)
            {
                WorkWithLocalProxy = true;
            }
            else if (!ProxyConnectsToSensitiveIP)
            {
                WorkWithTwoProxy = true;
            }
            else
            {
                WorkWithSomethingElse = true;
            }
        }
Ejemplo n.º 2
0
        private void FirstLoad()
        {
            var diagnostic = SystemProxyAnalyzer.Diagnose();

            // if there is a local proxy, use it
            LocalProxy = diagnostic.DefaultProxy;
            // find a remote proxy
            if (!diagnostic.SensitiveHttpConnectRoute.HasFlag(RouteStatus.ProxyAcceptsAddress))
            {
                var firstProxy = ProxyPageScanner.ScanPage(ProxyPage.Default.First(), ProxyClient.CreateRoute(LocalProxy), TestTargetUri).FirstOrDefault();
                if (firstProxy != null)
                {
                    RemoteProxy = new Uri(string.Format("http://{0}:{1}", firstProxy.Host, firstProxy.Port));
                }
            }
            else
            {
                RemoteProxy = null;
            }
        }