summaryrefslogtreecommitdiffstats
path: root/updater
diff options
context:
space:
mode:
Diffstat (limited to 'updater')
-rw-r--r--updater/blockimg.cpp2
-rw-r--r--updater/updater.cpp4
2 files changed, 6 insertions, 0 deletions
diff --git a/updater/blockimg.cpp b/updater/blockimg.cpp
index d5c170473..df366b0b8 100644
--- a/updater/blockimg.cpp
+++ b/updater/blockimg.cpp
@@ -1213,6 +1213,7 @@ static int PerformCommandDiff(CommandParameters& params) {
std::placeholders::_2),
nullptr, nullptr) != 0) {
LOG(ERROR) << "Failed to apply image patch.";
+ failure_type = kPatchApplicationFailure;
return -1;
}
} else {
@@ -1221,6 +1222,7 @@ static int PerformCommandDiff(CommandParameters& params) {
std::placeholders::_2),
nullptr) != 0) {
LOG(ERROR) << "Failed to apply bsdiff patch.";
+ failure_type = kPatchApplicationFailure;
return -1;
}
}
diff --git a/updater/updater.cpp b/updater/updater.cpp
index 1be8b6040..f5ff6df91 100644
--- a/updater/updater.cpp
+++ b/updater/updater.cpp
@@ -202,6 +202,10 @@ int main(int argc, char** argv) {
// Cause code should provide additional information about the abort.
if (state.cause_code != kNoCause) {
fprintf(cmd_pipe, "log cause: %d\n", state.cause_code);
+ if (state.cause_code == kPatchApplicationFailure) {
+ LOG(INFO) << "Patch application failed, retry update.";
+ fprintf(cmd_pipe, "retry_update\n");
+ }
}
if (updater_info.package_zip) {