| 465 | } |
| 466 | |
| 467 | void ProxyManager::GetCurrentProxyType() { |
| 468 | LOG(TRACE) << "ProxyManager::GetCurrentProxyType"; |
| 469 | INTERNET_PER_CONN_OPTION_LIST option_list; |
| 470 | std::vector<INTERNET_PER_CONN_OPTION> proxy_type_options(1); |
| 471 | unsigned long list_size = sizeof(INTERNET_PER_CONN_OPTION_LIST); |
| 472 | |
| 473 | proxy_type_options[0].dwOption = INTERNET_PER_CONN_FLAGS_UI; |
| 474 | |
| 475 | option_list.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST); |
| 476 | option_list.pszConnection = NULL; |
| 477 | option_list.dwOptionCount = static_cast<int>(proxy_type_options.size()); |
| 478 | option_list.dwOptionError = 0; |
| 479 | option_list.pOptions = &proxy_type_options[0]; |
| 480 | |
| 481 | // First check for INTERNET_PER_CONN_FLAGS_UI, then if that fails |
| 482 | // check again using INTERNET_PER_CONN_FLAGS. This is documented at |
| 483 | // http://msdn.microsoft.com/en-us/library/windows/desktop/aa385145%28v=vs.85%29.aspx |
| 484 | BOOL success = ::InternetQueryOption(NULL, |
| 485 | INTERNET_OPTION_PER_CONNECTION_OPTION, |
| 486 | &option_list, |
| 487 | &list_size); |
| 488 | if (success) { |
| 489 | this->current_proxy_type_ = proxy_type_options[0].Value.dwValue; |
| 490 | return; |
| 491 | } |
| 492 | |
| 493 | proxy_type_options[0].dwOption = INTERNET_PER_CONN_FLAGS; |
| 494 | success = ::InternetQueryOption(NULL, |
| 495 | INTERNET_OPTION_PER_CONNECTION_OPTION, |
| 496 | &option_list, |
| 497 | &list_size); |
| 498 | if (success) { |
| 499 | this->current_proxy_type_ = proxy_type_options[0].Value.dwValue; |
| 500 | } |
| 501 | } |
| 502 | |
| 503 | } // namespace webdriver |
| 504 |
no test coverage detected