Index: src/ch/UpdateChecker.cpp =================================================================== diff -u -N -r50007f112b77cba170e6c427fee5428bda2d9dc5 -r045540c818c374806d09742ef3d7a984d8d757d3 --- src/ch/UpdateChecker.cpp (.../UpdateChecker.cpp) (revision 50007f112b77cba170e6c427fee5428bda2d9dc5) +++ src/ch/UpdateChecker.cpp (.../UpdateChecker.cpp) (revision 045540c818c374806d09742ef3d7a984d8d757d3) @@ -263,9 +263,6 @@ // mark as started pUpdateChecker->SetResult(eResult_Pending, 0); - // get the real address of file to download - CString strSite = pUpdateChecker->GetSiteAddress(); - CAsyncHttpFile::EWaitResult eWaitResult = CAsyncHttpFile::ePending; size_t stFileSize = 0; std::stringstream dataBuffer; @@ -276,6 +273,9 @@ if(pUpdateChecker->GetSendHeaders()) wstrHeaders = pUpdateChecker->m_tUpdateHeaders.GetHeaders((PCTSTR)pUpdateChecker->m_strLanguage, pUpdateChecker->m_eUpdateChannel); + // get the real address of file to download + CString strSite = pUpdateChecker->GetSiteAddress(); + HRESULT hResult = pUpdateChecker->m_httpFile.Open(strSite, wstrUserAgent.c_str(), wstrHeaders.c_str()); if(SUCCEEDED(hResult)) { @@ -284,16 +284,22 @@ { case CAsyncHttpFile::eFinished: break; + case CAsyncHttpFile::eKilled: pUpdateChecker->SetResult(eResult_Killed, 0); + pUpdateChecker->m_httpFile.Close(); return 1; + case CAsyncHttpFile::eError: pUpdateChecker->SetResult(eResult_Error, pUpdateChecker->m_httpFile.GetErrorCode()); + pUpdateChecker->m_httpFile.Close(); return 1; + case CAsyncHttpFile::eTimeout: case CAsyncHttpFile::ePending: default: pUpdateChecker->SetResult(eResult_Error, 0); + pUpdateChecker->m_httpFile.Close(); return 1; } @@ -317,15 +323,19 @@ break; case CAsyncHttpFile::eKilled: pUpdateChecker->SetResult(eResult_Killed, 0); + pUpdateChecker->m_httpFile.Close(); return 1; - break; + case CAsyncHttpFile::eError: pUpdateChecker->SetResult(eResult_Error, pUpdateChecker->m_httpFile.GetErrorCode()); + pUpdateChecker->m_httpFile.Close(); return 1; + case CAsyncHttpFile::eTimeout: case CAsyncHttpFile::ePending: default: pUpdateChecker->SetResult(eResult_Error, 0); + pUpdateChecker->m_httpFile.Close(); return 1; } } @@ -346,6 +356,7 @@ if(FAILED(hResult)) { pUpdateChecker->SetResult(eResult_Error, pUpdateChecker->m_httpFile.GetErrorCode()); + pUpdateChecker->m_httpFile.Close(); return 1; }