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

Side by Side Diff: update_attempter.cc

Issue 3599025: AU: Verify that the applied delta update matches the server-sent hashes. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: Created 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « download_action.cc ('k') | update_attempter_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "update_engine/update_attempter.h" 5 #include "update_engine/update_attempter.h"
6 6
7 // From 'man clock_gettime': feature test macro: _POSIX_C_SOURCE >= 199309L 7 // From 'man clock_gettime': feature test macro: _POSIX_C_SOURCE >= 199309L
8 #ifndef _POSIX_C_SOURCE 8 #ifndef _POSIX_C_SOURCE
9 #define _POSIX_C_SOURCE 199309L 9 #define _POSIX_C_SOURCE 199309L
10 #endif // _POSIX_C_SOURCE 10 #endif // _POSIX_C_SOURCE
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 if (omaha_request_params_.delta_okay && 512 if (omaha_request_params_.delta_okay &&
513 prefs_->GetInt64(kPrefsDeltaUpdateFailures, &delta_failures) && 513 prefs_->GetInt64(kPrefsDeltaUpdateFailures, &delta_failures) &&
514 delta_failures >= kMaxDeltaUpdateFailures) { 514 delta_failures >= kMaxDeltaUpdateFailures) {
515 LOG(WARNING) << "Too many delta update failures, forcing full update."; 515 LOG(WARNING) << "Too many delta update failures, forcing full update.";
516 omaha_request_params_.delta_okay = false; 516 omaha_request_params_.delta_okay = false;
517 } 517 }
518 } 518 }
519 519
520 void UpdateAttempter::MarkDeltaUpdateFailure() { 520 void UpdateAttempter::MarkDeltaUpdateFailure() {
521 CHECK(!is_full_update_); 521 CHECK(!is_full_update_);
522 // If a delta update fails after the downloading phase, don't try to resume it 522 // Don't try to resume a failed delta update.
523 // the next time. 523 DeltaPerformer::ResetUpdateProgress(prefs_, false);
524 if (status_ > UPDATE_STATUS_DOWNLOADING) {
525 DeltaPerformer::ResetUpdateProgress(prefs_, false);
526 }
527 int64_t delta_failures; 524 int64_t delta_failures;
528 if (!prefs_->GetInt64(kPrefsDeltaUpdateFailures, &delta_failures) || 525 if (!prefs_->GetInt64(kPrefsDeltaUpdateFailures, &delta_failures) ||
529 delta_failures < 0) { 526 delta_failures < 0) {
530 delta_failures = 0; 527 delta_failures = 0;
531 } 528 }
532 prefs_->SetInt64(kPrefsDeltaUpdateFailures, ++delta_failures); 529 prefs_->SetInt64(kPrefsDeltaUpdateFailures, ++delta_failures);
533 } 530 }
534 531
535 void UpdateAttempter::SetupDownload() { 532 void UpdateAttempter::SetupDownload() {
536 MultiHttpFetcher<LibcurlHttpFetcher>* fetcher = 533 MultiHttpFetcher<LibcurlHttpFetcher>* fetcher =
537 dynamic_cast<MultiHttpFetcher<LibcurlHttpFetcher>*>( 534 dynamic_cast<MultiHttpFetcher<LibcurlHttpFetcher>*>(
538 download_action_->http_fetcher()); 535 download_action_->http_fetcher());
539 MultiHttpFetcher<LibcurlHttpFetcher>::RangesVect ranges; 536 MultiHttpFetcher<LibcurlHttpFetcher>::RangesVect ranges;
540 if (response_handler_action_->install_plan().is_resume) { 537 if (response_handler_action_->install_plan().is_resume) {
541 int64_t manifest_metadata_size = 0; 538 int64_t manifest_metadata_size = 0;
542 prefs_->GetInt64(kPrefsManifestMetadataSize, &manifest_metadata_size); 539 prefs_->GetInt64(kPrefsManifestMetadataSize, &manifest_metadata_size);
543 int64_t next_data_offset = 0; 540 int64_t next_data_offset = 0;
544 prefs_->GetInt64(kPrefsUpdateStateNextDataOffset, &next_data_offset); 541 prefs_->GetInt64(kPrefsUpdateStateNextDataOffset, &next_data_offset);
545 ranges.push_back(make_pair(0, manifest_metadata_size)); 542 ranges.push_back(make_pair(0, manifest_metadata_size));
546 ranges.push_back(make_pair(manifest_metadata_size + next_data_offset, -1)); 543 ranges.push_back(make_pair(manifest_metadata_size + next_data_offset, -1));
547 } else { 544 } else {
548 ranges.push_back(make_pair(0, -1)); 545 ranges.push_back(make_pair(0, -1));
549 } 546 }
550 fetcher->set_ranges(ranges); 547 fetcher->set_ranges(ranges);
551 } 548 }
552 549
553 } // namespace chromeos_update_engine 550 } // namespace chromeos_update_engine
OLDNEW
« no previous file with comments | « download_action.cc ('k') | update_attempter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698