コード例 #1
0
        public static void Startup(int iListenPort, bool bRegisterAsSystemProxy, bool bDecryptSSL, bool bAllowRemote)
        {
            KProxyStartupFlags oFlags = KProxyStartupFlags.Default;

            if (bRegisterAsSystemProxy)
            {
                oFlags |= KProxyStartupFlags.RegisterAsSystemProxy;
            }
            else
            {
                oFlags &= ~KProxyStartupFlags.RegisterAsSystemProxy;
            }
            if (bDecryptSSL)
            {
                oFlags |= KProxyStartupFlags.DecryptSSL;
            }
            else
            {
                oFlags &= ~KProxyStartupFlags.DecryptSSL;
            }
            if (bAllowRemote)
            {
                oFlags |= KProxyStartupFlags.AllowRemoteClients;
            }
            else
            {
                oFlags &= ~KProxyStartupFlags.AllowRemoteClients;
            }
            Startup(iListenPort, oFlags);
        }
コード例 #2
0
 public static void Startup(int iListenPort, KProxyStartupFlags oFlags)
 {
     if (oProxy != null)
     {
         throw new InvalidOperationException("Calling startup twice without calling shutdown is not permitted.");
     }
     if ((iListenPort < 0) || (iListenPort > 0xffff))
     {
         throw new ArgumentOutOfRangeException("bListenPort", "Port must be between 0 and 65535.");
     }
     KPCONFIG.ListenPort = iListenPort;
     KPCONFIG.bAllowRemoteConnections = KProxyStartupFlags.None < (oFlags & KProxyStartupFlags.AllowRemoteClients);
     KPCONFIG.bMITM_HTTPS             = KProxyStartupFlags.None < (oFlags & KProxyStartupFlags.DecryptSSL);
     KPCONFIG.bCaptureCONNECT         = true;
     KPCONFIG.bForwardToGateway       = KProxyStartupFlags.None < (oFlags & KProxyStartupFlags.ChainToUpstreamGateway);
     KPCONFIG.bHookAllConnections     = KProxyStartupFlags.None < (oFlags & KProxyStartupFlags.MonitorAllConnections);
     if (KProxyStartupFlags.None < (oFlags & KProxyStartupFlags.CaptureLocalhostTraffic))
     {
         KPCONFIG.sHostsThatBypassKProxy = KPCONFIG.sHostsThatBypassKProxy;
     }
     oProxy = new Proxy(true);
     if (oProxy.Start(KPCONFIG.ListenPort, KPCONFIG.bAllowRemoteConnections))
     {
         if (iListenPort == 0)
         {
             KPCONFIG.ListenPort = oProxy.ListenPort;
         }
         if (KProxyStartupFlags.None < (oFlags & KProxyStartupFlags.RegisterAsSystemProxy))
         {
             oProxy.Attach(true);
         }
         else if (KProxyStartupFlags.None < (oFlags & KProxyStartupFlags.ChainToUpstreamGateway))
         {
             oProxy.CollectConnectoidAndGatewayInfo();
         }
     }
 }