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

Unified Diff: tools/OmahaCompatibility/HttpServer/update_check_handler.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
Index: tools/OmahaCompatibility/HttpServer/update_check_handler.cc
diff --git a/tools/OmahaCompatibility/HttpServer/update_check_handler.cc b/tools/OmahaCompatibility/HttpServer/update_check_handler.cc
deleted file mode 100644
index 2e419476c21fe1b554edad846700e79098a2bbc1..0000000000000000000000000000000000000000
--- a/tools/OmahaCompatibility/HttpServer/update_check_handler.cc
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright 2008-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.
-// ========================================================================
-
-#include "omaha/tools/omahacompatibility/httpserver/update_check_handler.h"
-#include <windows.h>
-#include "omaha/common/debug.h"
-#include "omaha/common/logging.h"
-#include "omaha/goopdate/goopdate_utils.h"
-#include "omaha/tools/omahacompatibility/common/error.h"
-#include "omaha/tools/omahacompatibility/httpserver/request.h"
-#include "omaha/tools/omahacompatibility/httpserver/xml_parser.h"
-
-namespace omaha {
-
-UpdateCheckHandler::UpdateCheckHandler(const CString& url_path,
- PingObserver* observer)
- : UrlHandler(url_path),
- ping_observer_(observer) {
- CORE_LOG(L1, (_T("[UpdateCheckHandler]")));
-}
-
-// Private method that goes over the request, i.e. the update checks or
-// the pings for each application and constructs an appropriate response.
-// For pings we dont do anything, and for update checks we construct the
-// update response based on the config information.
-HRESULT UpdateCheckHandler::BuildResponse(const AppRequestDataVector& request,
- ServerResponses* responses) {
- ASSERT1(responses);
-
- for (size_t i = 0; i < request.size(); ++i) {
- AppData app_data = request[i].app_data();
- ServerResponse response;
- response.guid = GuidToString(app_data.app_guid());
-
- if (request[i].num_ping_events() > 0) {
- // This is a ping request. We only handle the ping and nothing else.
- response.is_ping = true;
- if (ping_observer_) {
- ping_observer_->Observe(request[i]);
- }
- } else {
- // We assume this is an update check and send back an appropriate
- // response.
- ConfigResponse config_app_response;
- HRESULT hr = FindResponse(app_data.app_guid(),
- app_data.version(),
- app_data.ap(),
- &config_app_response);
- if (SUCCEEDED(hr)) {
- response.is_update_response = true;
- response.response_data.set_url(config_app_response.url);
- response.response_data.set_hash(config_app_response.hash);
- response.response_data.set_needs_admin(config_app_response.needs_admin ?
- omaha::NEEDS_ADMIN_YES :
- omaha::NEEDS_ADMIN_NO);
- response.response_data.set_size(config_app_response.size);
- }
- // Continuing here in the failed case will cause the
- // is_update_response to be false,
- // causing the server to respond with no-update.
- }
- responses->push_back(response);
- }
-
- return S_OK;
-}
-
-HRESULT UpdateCheckHandler::HandleRequest(const HttpRequest& http_request,
- HttpResponse* response) {
- CORE_LOG(L1, (_T("[UpdateCheckHandler::HandleRequest]")));
- ASSERT1(response);
- ASSERT1(http_request.http_verb() == HttpVerbPOST);
-
- // Parse the request.
- CORE_LOG(L1, (_T("[Request %s]"), http_request.content()));
- AppRequestDataVector request;
- HRESULT hr = ParseUpdateCheck(http_request.content(), &request);
- if (FAILED(hr)) {
- CORE_LOG(LW, (_T("[ParseUpdateCheck failed]")));
- return hr;
- }
-
- // Map the request to a response.
- ServerResponses responses;
- hr = BuildResponse(request, &responses);
- if (FAILED(hr)) {
- return hr;
- }
-
- // Convert the response into the response string.
- CString update_response_str;
- hr = BuildUpdateResponse(responses, &update_response_str);
- if (FAILED(hr)) {
- CORE_LOG(LW, (_T("[BuildUpdateResponse failed]")));
- return hr;
- }
-
- CORE_LOG(L1, (_T("[Response %s]"), update_response_str));
- response->set_response_str(update_response_str);
-
- return S_OK;
-}
-
-HRESULT UpdateCheckHandler::AddAppVersionResponse(
- const ConfigResponse& response) {
- CORE_LOG(L1, (_T("[UpdateCheckHandler::AddAppVersionResponse]")));
- // TODO(omaha): Add duplicate checking.
-
- config_responses_.push_back(response);
- return S_OK;
-}
-
-HRESULT UpdateCheckHandler::FindResponse(GUID guid,
- const CString& version,
- const CString& ap,
- ConfigResponse* response) {
- CORE_LOG(L1, (_T("[UpdateCheckHandler::FindResponse]")));
- ASSERT1(response);
-
- // The idea here is that we go over the config responses, for a request
- // that contains 0.0.0.0 in the request, or empty we return the initial
- // response, i.e. the first installer we read.
- // If the version is not empty, then we match it with the previous config
- // version, i.e. the version that should have been installed,
- // and return a response if there is a match.
- if (version.IsEmpty() || version == _T("0.0.0.0")) {
- // This is the initial response.
- *response = config_responses_[0];
- return S_OK;
- }
-
- for (size_t i = 1; i < config_responses_.size(); ++i) {
- if (::IsEqualGUID(config_responses_[i].guid, guid) &&
- _T("update_app") == ap &&
- version == config_responses_[i - 1].version) {
- // This is the second response.
- *response = config_responses_[i];
- return S_OK;
- }
- }
-
- return E_FAIL;
-}
-
-} // namespace omaha
« no previous file with comments | « tools/OmahaCompatibility/HttpServer/update_check_handler.h ('k') | tools/OmahaCompatibility/HttpServer/url_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698