Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(318)

Unified Diff: net/winhttp.cc

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/winhttp.h ('k') | net/winhttp_adapter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/winhttp.cc
diff --git a/net/winhttp.cc b/net/winhttp.cc
deleted file mode 100644
index cc361d5a234277055c5513ef734675d3a7639eb1..0000000000000000000000000000000000000000
--- a/net/winhttp.cc
+++ /dev/null
@@ -1,566 +0,0 @@
-// Copyright 2007-2009 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-// ========================================================================
-//
-// Internet-access utility functions via winhttp
-
-#include "omaha/net/winhttp.h"
-#include <vector>
-#include "base/basictypes.h"
-#include "base/scoped_ptr.h"
-#include "omaha/base/debug.h"
-#include "omaha/base/error.h"
-#include "omaha/base/logging.h"
-#include "omaha/base/string.h"
-#include "omaha/base/synchronized.h"
-#include "omaha/base/utils.h"
-#include "omaha/net/winhttp_vtable.h"
-
-namespace omaha {
-
-class WinHttp : public HttpClient {
- public:
- static HttpClient* Create() { return new WinHttp; }
-
- virtual HRESULT Initialize();
- virtual HRESULT AddRequestHeaders(HINTERNET request,
- const TCHAR* headers,
- int length,
- uint32 modifiers);
- virtual HRESULT CheckPlatform();
- virtual HRESULT Close(HINTERNET handle);
- virtual HRESULT Connect(HINTERNET session_handle,
- const TCHAR* server,
- int port,
- HINTERNET* connection_handle);
- virtual HRESULT CrackUrl(const TCHAR* url,
- uint32 flags,
- CString* scheme,
- CString* server,
- int* port,
- CString* url_path,
- CString* extra_info);
- virtual HRESULT CreateUrl(const TCHAR* scheme,
- const TCHAR* server,
- int port,
- const TCHAR* url_path,
- const TCHAR* extra_info,
- uint32 flags,
- CString* url);
- virtual HRESULT DetectAutoProxyConfigUrl(uint32 flags,
- CString* auto_config_url);
- virtual HRESULT GetDefaultProxyConfiguration(ProxyInfo* proxy_info);
- virtual HRESULT GetIEProxyConfiguration(
- CurrentUserIEProxyConfig* proxy_info);
- virtual HRESULT GetProxyForUrl(HINTERNET session_handle,
- const TCHAR* url,
- const AutoProxyOptions* auto_proxy_options,
- ProxyInfo* proxy_info);
- virtual HRESULT Open(const TCHAR* user_agent,
- uint32 access_type,
- const TCHAR* proxy_name,
- const TCHAR* proxy_bypass,
- DWORD flags,
- HINTERNET* session_handle);
- virtual HRESULT OpenRequest(HINTERNET connection_handle,
- const TCHAR* verb,
- const TCHAR* uri,
- const TCHAR* version,
- const TCHAR* referrer,
- const TCHAR** accept_types,
- uint32 flags,
- HINTERNET* request_handle);
- virtual HRESULT QueryAuthSchemes(HINTERNET request_handle,
- uint32* supported_schemes,
- uint32* first_scheme,
- uint32* auth_target);
- virtual HRESULT QueryDataAvailable(HINTERNET request_handle,
- DWORD* num_bytes);
- virtual HRESULT QueryHeaders(HINTERNET request_handle,
- uint32 info_level,
- const TCHAR* name,
- void* buffer,
- DWORD* buffer_length,
- DWORD* index);
- virtual HRESULT QueryOption(HINTERNET handle,
- uint32 option,
- void* buffer,
- DWORD* buffer_length);
- virtual HRESULT ReadData(HINTERNET request_handle,
- void* buffer,
- DWORD buffer_length,
- DWORD* bytes_read);
- virtual HRESULT ReceiveResponse(HINTERNET request_handle);
- virtual HRESULT SendRequest(HINTERNET request_handle,
- const TCHAR* headers,
- DWORD headers_length,
- const void* optional_data,
- DWORD optional_data_length,
- DWORD content_length,
- DWORD_PTR context);
- virtual HRESULT SetCredentials(HINTERNET request_handle,
- uint32 auth_targets,
- uint32 auth_scheme,
- const TCHAR* user_name,
- const TCHAR* password);
- virtual HRESULT SetDefaultProxyConfiguration(const ProxyInfo& proxy_info);
- virtual HRESULT SetOption(HINTERNET handle,
- uint32 option,
- const void* buffer,
- DWORD buffer_length);
- virtual StatusCallback SetStatusCallback(HINTERNET handle,
- StatusCallback callback,
- uint32 flags);
- virtual HRESULT SetTimeouts(HINTERNET handle,
- int resolve_timeout_ms,
- int connect_timeout_ms,
- int send_timeout_ms,
- int receive_timeout_ms);
- virtual HRESULT WriteData(HINTERNET request_handle,
- const void* buffer,
- DWORD bytes_to_write,
- DWORD* bytes_written);
-
- private:
- WinHttp();
-
- bool is_initialized_;
-
- static WinHttpVTable winhttp_;
- static LLock lock_;
-
- DISALLOW_EVIL_CONSTRUCTORS(WinHttp);
-};
-
-WinHttpVTable WinHttp::winhttp_;
-LLock WinHttp::lock_;
-
-// TODO(omaha): remove after the implementation is complete.
-// 4100: unreferenced formal parameter
-#pragma warning(disable : 4100)
-
-WinHttp::WinHttp() : is_initialized_(false) {
-}
-
-HRESULT WinHttp::Initialize() {
- __mutexScope(WinHttp::lock_);
- if (is_initialized_) {
- return S_OK;
- }
- if (!winhttp_.Load()) {
- HRESULT hr = HRESULTFromLastError();
- NET_LOG(LEVEL_ERROR, (_T("[failed to load winhttp][0x%08x]"), hr));
- return hr;
- }
- is_initialized_ = true;
- return S_OK;
-}
-
-HRESULT WinHttp::Open(const TCHAR* user_agent,
- uint32 access_type,
- const TCHAR* proxy_name,
- const TCHAR* proxy_bypass,
- DWORD flags,
- HINTERNET* session_handle) {
- *session_handle = winhttp_.WinHttpOpen(user_agent,
- access_type,
- proxy_name,
- proxy_bypass,
- flags);
- return *session_handle ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::Close(HINTERNET handle) {
- ASSERT1(handle);
- return winhttp_.WinHttpCloseHandle(handle) ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::Connect(HINTERNET session_handle,
- const TCHAR* server,
- int port,
- HINTERNET* connection_handle) {
- ASSERT1(server);
- ASSERT1(port <= INTERNET_MAX_PORT_NUMBER_VALUE);
-
- *connection_handle = winhttp_.WinHttpConnect(session_handle,
- server,
- static_cast<INTERNET_PORT>(port),
- 0);
- return *connection_handle ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::OpenRequest(HINTERNET connection_handle,
- const TCHAR* verb,
- const TCHAR* uri,
- const TCHAR* version,
- const TCHAR* referrer,
- const TCHAR** accept_types,
- uint32 flags,
- HINTERNET* request_handle) {
- *request_handle = winhttp_.WinHttpOpenRequest(connection_handle,
- verb,
- uri,
- version,
- referrer,
- accept_types,
- flags);
- return *request_handle ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::SendRequest(HINTERNET request_handle,
- const TCHAR* headers,
- DWORD headers_length,
- const void* optional_data,
- DWORD optional_data_length,
- DWORD content_length,
- DWORD_PTR context) {
- bool res = !!winhttp_.WinHttpSendRequest(
- request_handle,
- headers,
- headers_length,
- const_cast<void*>(optional_data),
- optional_data_length,
- content_length,
- context);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::ReceiveResponse(HINTERNET request_handle) {
- bool res = !!winhttp_.WinHttpReceiveResponse(request_handle, NULL);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::QueryDataAvailable(HINTERNET request_handle,
- DWORD* num_bytes) {
- bool res = !!winhttp_.WinHttpQueryDataAvailable(request_handle, num_bytes);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::SetTimeouts(HINTERNET handle,
- int resolve_timeout_ms,
- int connect_timeout_ms,
- int send_timeout_ms,
- int receive_timeout_ms) {
- bool res = !!winhttp_.WinHttpSetTimeouts(handle,
- resolve_timeout_ms,
- connect_timeout_ms,
- send_timeout_ms,
- receive_timeout_ms);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::ReadData(HINTERNET request_handle,
- void* buffer,
- DWORD buffer_length,
- DWORD* bytes_read) {
- ASSERT1(buffer);
-
- bool res = !!winhttp_.WinHttpReadData(request_handle,
- buffer,
- buffer_length,
- bytes_read);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::WriteData(HINTERNET request_handle,
- const void* buffer,
- DWORD bytes_to_write,
- DWORD* bytes_written) {
- ASSERT1(buffer);
-
- bool res = !!winhttp_.WinHttpWriteData(request_handle,
- buffer,
- bytes_to_write,
- bytes_written);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::SetCredentials(HINTERNET request_handle,
- uint32 auth_targets,
- uint32 auth_scheme,
- const TCHAR* user_name,
- const TCHAR* password) {
- bool res = !!winhttp_.WinHttpSetCredentials(request_handle,
- auth_targets,
- auth_scheme,
- user_name,
- password,
- NULL);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::DetectAutoProxyConfigUrl(uint32 flags,
- CString* auto_config_url) {
- ASSERT1(auto_config_url);
- TCHAR* url = NULL;
- bool res = !!winhttp_.WinHttpDetectAutoProxyConfigUrl(flags, &url);
- *auto_config_url = url;
- HRESULT hr = res ? S_OK : HRESULTFromLastError();
- if (url) {
- VERIFY1(!::GlobalFree(url));
- }
- return hr;
-}
-
-HRESULT WinHttp::GetDefaultProxyConfiguration(ProxyInfo* proxy_info) {
- ASSERT1(proxy_info);
-
- WINHTTP_PROXY_INFO pi = {0};
- bool res = !!winhttp_.WinHttpGetDefaultProxyConfiguration(&pi);
-
- proxy_info->access_type = pi.dwAccessType;
- proxy_info->proxy = pi.lpszProxy;
- proxy_info->proxy_bypass = pi.lpszProxyBypass;
-
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::SetDefaultProxyConfiguration(const ProxyInfo& proxy_info) {
- WINHTTP_PROXY_INFO pi = {0};
- pi.dwAccessType = proxy_info.access_type;
- pi.lpszProxy = const_cast<TCHAR*>(proxy_info.proxy);
- pi.lpszProxyBypass = const_cast<TCHAR*>(proxy_info.proxy_bypass);
-
- bool res = !!winhttp_.WinHttpSetDefaultProxyConfiguration(&pi);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::GetIEProxyConfiguration(CurrentUserIEProxyConfig* proxy_info) {
- ASSERT1(proxy_info);
-
- WINHTTP_CURRENT_USER_IE_PROXY_CONFIG pi = {0};
- bool res = !!winhttp_.WinHttpGetIEProxyConfigForCurrentUser(&pi);
-
- proxy_info->auto_detect = !!pi.fAutoDetect;
- proxy_info->auto_config_url = pi.lpszAutoConfigUrl;
- proxy_info->proxy = pi.lpszProxy;
- proxy_info->proxy_bypass = pi.lpszProxyBypass;
-
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::GetProxyForUrl(HINTERNET session_handle,
- const TCHAR* url,
- const AutoProxyOptions* auto_proxy_options,
- ProxyInfo* proxy_info) {
- ASSERT1(auto_proxy_options);
- ASSERT1(proxy_info);
-
- WINHTTP_AUTOPROXY_OPTIONS apo = {0};
- apo.dwFlags = auto_proxy_options->flags;
- apo.dwAutoDetectFlags = auto_proxy_options->auto_detect_flags;
- apo.lpszAutoConfigUrl = auto_proxy_options->auto_config_url;
- apo.lpvReserved = NULL;
- apo.dwReserved = 0;
- apo.fAutoLogonIfChallenged = auto_proxy_options->auto_logon_if_challenged;
-
- WINHTTP_PROXY_INFO pi = {0};
-
- ASSERT1(session_handle);
- bool res = !!winhttp_.WinHttpGetProxyForUrl(session_handle, url, &apo, &pi);
-
- proxy_info->access_type = pi.dwAccessType;
- proxy_info->proxy = pi.lpszProxy;
- proxy_info->proxy_bypass = pi.lpszProxyBypass;
-
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::QueryAuthSchemes(HINTERNET request_handle,
- uint32* supported_schemes,
- uint32* first_scheme,
- uint32* auth_target) {
- ASSERT1(supported_schemes);
- ASSERT1(first_scheme);
- ASSERT1(auth_target);
-
- DWORD ss = 0;
- DWORD fs = 0;
- DWORD at = 0;
-
- ASSERT1(request_handle);
- bool res = !!winhttp_.WinHttpQueryAuthSchemes(request_handle, &ss, &fs, &at);
-
- *supported_schemes = ss;
- *first_scheme = fs;
- *auth_target = at;
-
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::AddRequestHeaders(HINTERNET request_handle,
- const TCHAR* headers,
- int length,
- uint32 modifiers) {
- ASSERT1(headers);
- bool res = !!winhttp_.WinHttpAddRequestHeaders(request_handle,
- headers,
- length,
- modifiers);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::CrackUrl(const TCHAR* url,
- uint32 flags,
- CString* scheme,
- CString* server,
- int* port,
- CString* url_path,
- CString* extra_info) {
- ASSERT1(url);
- size_t url_length = _tcslen(url);
- URL_COMPONENTS url_comp = {0};
- url_comp.dwStructSize = sizeof(url_comp);
- if (scheme) {
- url_comp.lpszScheme = scheme->GetBuffer(INTERNET_MAX_SCHEME_LENGTH);
- url_comp.dwSchemeLength = INTERNET_MAX_SCHEME_LENGTH;
- }
- if (server) {
- url_comp.lpszHostName = server->GetBuffer(INTERNET_MAX_HOST_NAME_LENGTH);
- url_comp.dwHostNameLength = INTERNET_MAX_HOST_NAME_LENGTH;
- }
- if (url_path) {
- url_comp.lpszUrlPath = url_path->GetBuffer(INTERNET_MAX_PATH_LENGTH);
- url_comp.dwUrlPathLength = INTERNET_MAX_PATH_LENGTH;
- }
- if (extra_info) {
- // There is no constant for the extra info max length.
- url_comp.lpszExtraInfo = extra_info->GetBuffer(INTERNET_MAX_PATH_LENGTH);
- url_comp.dwExtraInfoLength = INTERNET_MAX_PATH_LENGTH;
- }
- bool res = !!winhttp_.WinHttpCrackUrl(url, url_length, flags, &url_comp);
- if (scheme) {
- scheme->ReleaseBuffer(url_comp.dwSchemeLength);
- }
- if (server) {
- server->ReleaseBuffer(url_comp.dwHostNameLength);
- }
- if (port) {
- *port = url_comp.nPort;
- }
- if (url_path) {
- url_path->ReleaseBuffer(url_comp.dwUrlPathLength);
- }
- if (extra_info) {
- extra_info->ReleaseBuffer(url_comp.dwExtraInfoLength);
- }
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::CreateUrl(const TCHAR* scheme,
- const TCHAR* server,
- int port,
- const TCHAR* url_path,
- const TCHAR* extra_info,
- uint32 flags,
- CString* url) {
- ASSERT1(url);
- ASSERT1(port <= INTERNET_MAX_PORT_NUMBER_VALUE);
-
- URL_COMPONENTS url_comp = {0};
- url_comp.dwStructSize = sizeof(url_comp);
- if (scheme) {
- url_comp.lpszScheme = const_cast<TCHAR*>(scheme);
- url_comp.dwSchemeLength = _tcslen(scheme);
- }
- if (server) {
- url_comp.lpszHostName = const_cast<TCHAR*>(server);
- url_comp.dwHostNameLength = _tcslen(server);
- }
- if (port) {
- url_comp.nPort = static_cast<INTERNET_PORT>(port);
- }
- if (url_path) {
- url_comp.lpszUrlPath = const_cast<TCHAR*>(url_path);
- url_comp.dwUrlPathLength = _tcslen(url_path);
- }
- if (extra_info) {
- url_comp.lpszExtraInfo = const_cast<TCHAR*>(extra_info);
- url_comp.dwExtraInfoLength = _tcslen(extra_info);
- }
-
- DWORD url_length = 0;
- bool res = !!winhttp_.WinHttpCreateUrl(
- &url_comp,
- flags,
- url->GetBuffer(INTERNET_MAX_URL_LENGTH),
- &url_length);
- if (!res) {
- return HRESULTFromLastError();
- }
- ASSERT1(url_length);
- url->ReleaseBuffer(url_length);
- return S_OK;
-}
-
-HttpClient::StatusCallback WinHttp::SetStatusCallback(HINTERNET handle,
- StatusCallback callback,
- uint32 flags) {
- WINHTTP_STATUS_CALLBACK winhttp_status_callback =
- winhttp_.WinHttpSetStatusCallback(
- handle,
- reinterpret_cast<WINHTTP_STATUS_CALLBACK>(callback),
- flags,
- NULL);
- return reinterpret_cast<HttpClient::StatusCallback>(winhttp_status_callback);
-}
-
-HRESULT WinHttp::CheckPlatform() {
- return !!winhttp_.WinHttpCheckPlatform() ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::QueryHeaders(HINTERNET request_handle,
- uint32 info_level,
- const TCHAR* name,
- void* buffer,
- DWORD* buffer_length,
- DWORD* index) {
- ASSERT1(buffer_length);
- bool res = !!winhttp_.WinHttpQueryHeaders(request_handle,
- info_level,
- name,
- buffer,
- buffer_length,
- index);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::QueryOption(HINTERNET handle,
- uint32 option,
- void* buffer,
- DWORD* buffer_length) {
- ASSERT1(buffer_length);
- bool res = !!winhttp_.WinHttpQueryOption(handle, option,
- buffer, buffer_length);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-HRESULT WinHttp::SetOption(HINTERNET handle,
- uint32 option,
- const void* buffer,
- DWORD buffer_length) {
- ASSERT1(buffer);
- ASSERT1(buffer_length);
- bool res = !!winhttp_.WinHttpSetOption(handle,
- option,
- const_cast<void*>(buffer),
- buffer_length);
- return res ? S_OK : HRESULTFromLastError();
-}
-
-extern "C" const bool kRegisterWinHttp =
- HttpClient::GetFactory().Register(HttpClient::WINHTTP, &WinHttp::Create);
-
-} // namespace omaha
-
« no previous file with comments | « net/winhttp.h ('k') | net/winhttp_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698