コード例 #1
0
        public unsafe static bool WinHttpSetOption(
            SafeWinHttpHandle handle,
            uint option,
            IntPtr optionData,
            uint optionLength)
        {
            if (option == Interop.WinHttp.WINHTTP_OPTION_PROXY)
            {
                var proxyInfo        = Marshal.PtrToStructure <Interop.WinHttp.WINHTTP_PROXY_INFO>(optionData);
                var proxyInfoHistory = new APICallHistory.ProxyInfo();
                proxyInfoHistory.AccessType         = proxyInfo.AccessType;
                proxyInfoHistory.Proxy              = Marshal.PtrToStringUni(proxyInfo.Proxy);
                proxyInfoHistory.ProxyBypass        = Marshal.PtrToStringUni(proxyInfo.ProxyBypass);
                APICallHistory.RequestProxySettings = proxyInfoHistory;
            }
            else if (option == Interop.WinHttp.WINHTTP_OPTION_CLIENT_CERT_CONTEXT)
            {
                APICallHistory.WinHttpOptionClientCertContext.Add(optionData);
            }
            else if (option == Interop.WinHttp.WINHTTP_OPTION_TCP_KEEPALIVE)
            {
                Interop.WinHttp.tcp_keepalive *ptr = (Interop.WinHttp.tcp_keepalive *)optionData;
                APICallHistory.WinHttpOptionTcpKeepAlive = (ptr->onoff, ptr->keepalivetime, ptr->keepaliveinterval);
            }

            return(true);
        }
コード例 #2
0
        public static bool WinHttpSetOption(
            SafeWinHttpHandle handle,
            uint option,
            IntPtr optionData,
            uint optionLength)
        {
            if (option == Interop.WinHttp.WINHTTP_OPTION_PROXY)
            {
                var proxyInfo        = Marshal.PtrToStructure <Interop.WinHttp.WINHTTP_PROXY_INFO>(optionData);
                var proxyInfoHistory = new APICallHistory.ProxyInfo();
                proxyInfoHistory.AccessType         = proxyInfo.AccessType;
                proxyInfoHistory.Proxy              = Marshal.PtrToStringUni(proxyInfo.Proxy);
                proxyInfoHistory.ProxyBypass        = Marshal.PtrToStringUni(proxyInfo.ProxyBypass);
                APICallHistory.RequestProxySettings = proxyInfoHistory;
            }
            else if (option == Interop.WinHttp.WINHTTP_OPTION_CLIENT_CERT_CONTEXT)
            {
                APICallHistory.WinHttpOptionClientCertContext.Add(optionData);
            }

            return(true);
        }
コード例 #3
0
        public static bool WinHttpSetOption(
            SafeWinHttpHandle handle,
            uint option,
            IntPtr optionData,
            uint optionLength)
        {
            if (option == Interop.WinHttp.WINHTTP_OPTION_PROXY)
            {
                var proxyInfo = Marshal.PtrToStructure<Interop.WinHttp.WINHTTP_PROXY_INFO>(optionData);
                var proxyInfoHistory = new APICallHistory.ProxyInfo();
                proxyInfoHistory.AccessType = proxyInfo.AccessType;
                proxyInfoHistory.Proxy = Marshal.PtrToStringUni(proxyInfo.Proxy);
                proxyInfoHistory.ProxyBypass = Marshal.PtrToStringUni(proxyInfo.ProxyBypass);
                APICallHistory.RequestProxySettings = proxyInfoHistory;
            }
            else if (option == Interop.WinHttp.WINHTTP_OPTION_CLIENT_CERT_CONTEXT)
            {
                APICallHistory.WinHttpOptionClientCertContext.Add(optionData);
            }

            return true;
        }