Index: download_action.cc |
diff --git a/download_action.cc b/download_action.cc |
index 9577047de5f49c55fc6d6540baf02edc50ba7a05..1cef2f2a6ed7c7eaf86a87126f7d6fef415041cb 100644 |
--- a/download_action.cc |
+++ b/download_action.cc |
@@ -27,7 +27,8 @@ DownloadAction::DownloadAction(PrefsInterface* prefs, |
http_fetcher_(http_fetcher), |
code_(kActionCodeSuccess), |
delegate_(NULL), |
- bytes_received_(0) {} |
+ bytes_received_(0), |
+ skip_reporting_signature_fail_(NULL) {} |
DownloadAction::~DownloadAction() {} |
@@ -157,6 +158,7 @@ void DownloadAction::TransferComplete(HttpFetcher *fetcher, bool successful) { |
if (delegate_) { |
delegate_->SetDownloadStatus(false); // Set to inactive. |
} |
+ bool sign_verify_failed = false; |
gauravsh
2011/04/06 00:07:23
nit: consider calling this signature_... to avoid
|
ActionExitCode code = |
successful ? kActionCodeSuccess : kActionCodeDownloadTransferError; |
if (code == kActionCodeSuccess) { |
@@ -164,7 +166,7 @@ void DownloadAction::TransferComplete(HttpFetcher *fetcher, bool successful) { |
if (!delta_performer_->VerifyPayload("", |
install_plan_.download_hash, |
install_plan_.size, |
- NULL)) { |
+ &sign_verify_failed)) { |
LOG(ERROR) << "Download of " << install_plan_.download_url |
<< " failed due to payload verification error."; |
code = kActionCodeDownloadPayloadVerificationError; |
@@ -193,6 +195,12 @@ void DownloadAction::TransferComplete(HttpFetcher *fetcher, bool successful) { |
} |
} |
+ if (skip_reporting_signature_fail_.get() && |
+ (code != kActionCodeSuccess || !sign_verify_failed)) { |
+ LOG(INFO) << "Suppressing signature pub key verification warning"; |
+ skip_reporting_signature_fail_->Run(); |
+ } |
+ |
FlushLinuxCaches(); |
// Write the path to the output pipe if we're successful. |