| 39 | } |
| 40 | |
| 41 | bool CInternetAPI::WebStatusCheck(const std::string & szAddress, LPDWORD pdwWebStat) |
| 42 | { |
| 43 | DWORD uiStatCode = 0; |
| 44 | DWORD statCodeLen = sizeof(DWORD); |
| 45 | |
| 46 | auto hInternet = g_winapiApiTable->InternetOpenA(m_szWebAgentName.c_str(), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL); |
| 47 | if (!hInternet) |
| 48 | { |
| 49 | DEBUG_LOG(LL_ERR, "InternetOpenA fail. Error: %u", g_winapiApiTable->GetLastError()); |
| 50 | |
| 51 | return false; |
| 52 | } |
| 53 | |
| 54 | auto hRequestHandle = g_winapiApiTable->InternetOpenUrlA(hInternet, szAddress.c_str(), NULL, NULL, INTERNET_FLAG_RELOAD | INTERNET_FLAG_DONT_CACHE, NULL); |
| 55 | if (!hRequestHandle) |
| 56 | { |
| 57 | DEBUG_LOG(LL_ERR, "InternetOpenUrlA fail. Error: %u", g_winapiApiTable->GetLastError()); |
| 58 | |
| 59 | g_winapiApiTable->InternetCloseHandle(hInternet); |
| 60 | return false; |
| 61 | } |
| 62 | |
| 63 | auto hQuery = g_winapiApiTable->HttpQueryInfoA(hRequestHandle, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &uiStatCode, &statCodeLen, NULL); |
| 64 | if (!hQuery) |
| 65 | { |
| 66 | DEBUG_LOG(LL_ERR, "HttpQueryInfoA fail. Error: %u", g_winapiApiTable->GetLastError()); |
| 67 | |
| 68 | g_winapiApiTable->InternetCloseHandle(hInternet); |
| 69 | g_winapiApiTable->InternetCloseHandle(hRequestHandle); |
| 70 | return false; |
| 71 | } |
| 72 | |
| 73 | g_winapiApiTable->InternetCloseHandle(hInternet); |
| 74 | g_winapiApiTable->InternetCloseHandle(hRequestHandle); |
| 75 | |
| 76 | if (pdwWebStat) |
| 77 | *pdwWebStat = uiStatCode; |
| 78 | return true; |
| 79 | } |
| 80 | |
| 81 | bool CInternetAPI::IsManipulatedConnection() |
| 82 | { |