Esempio n. 1
0
 internal bool Attach(bool bCollectGWInfo)
 {
     if (!this._bIsAttached)
     {
         if (bCollectGWInfo)
         {
             this.CollectConnectoidAndGatewayInfo();
         }
         WinINETProxyInfo oNewInfo = new WinINETProxyInfo();
         oNewInfo.bUseManualProxies = true;
         oNewInfo.bAllowDirect      = true;
         oNewInfo.sHttpProxy        = Browser.sSDVPListenHostPort;
         if (Browser.bCaptureCONNECT)
         {
             oNewInfo.sHttpsProxy = Browser.sSDVPListenHostPort;
         }
         else if (this.piPrior != null)
         {
             oNewInfo.sHttpsProxy = this.piPrior.sHttpsProxy;
         }
         if ((this.piPrior != null) && this.piPrior.bUseManualProxies)
         {
             oNewInfo.sFtpProxy   = this.piPrior.sFtpProxy;
             oNewInfo.sSocksProxy = this.piPrior.sSocksProxy;
         }
         if (Browser.bCaptureFTP)
         {
             oNewInfo.sFtpProxy = Browser.sSDVPListenHostPort;
         }
         oNewInfo.sHostsThatBypass = Browser.sHostsThatBypassSDVP;
         if (Browser.bHookWithPAC)
         {
             if (SDVPApplication.Prefs.GetBoolPref("SDVP.proxy.pacfile.usefileprotocol", true))
             {
                 oNewInfo.sPACScriptLocation = "file://" + Browser.GetPath("Pac");
             }
             else
             {
                 oNewInfo.sPACScriptLocation = "http://" + Browser.sSDVPListenHostPort + "/proxy.pac";
             }
         }
         if (!Browser.bIsViewOnly)
         {
             if (this.oAllConnectoids.HookConnections(oNewInfo))
             {
                 this._bIsAttached = true;
                 SDVPApplication.OnSDVPAttach();
                 this.WriteAutoProxyPACFile(true);
             }
             else
             {
                 SDVPApplication.DoNotifyUser("Failed to register SDVP as the system proxy.", "Error");
                 _setDynamicRegistryKey(false);
                 return(false);
             }
             _setDynamicRegistryKey(true);
         }
     }
     return(true);
 }