Sync with CrOS error codes.
Add to ErrorCode and metrics::DownloadErrorCode:
- kInternalLibCurlError
- kUnresolvedHostError
- kUnresolvedHostRecovered
Test: builds
Change-Id: Ibe11c02137860aed583b00b7e05b089ef84edb03
diff --git a/common/error_code.h b/common/error_code.h
index 252cc42..3dd7402 100644
--- a/common/error_code.h
+++ b/common/error_code.h
@@ -80,6 +80,9 @@
kRollbackNotPossible = 54,
kFirstActiveOmahaPingSentPersistenceError = 55,
kVerityCalculationError = 56,
+ kInternalLibCurlError = 57,
+ kUnresolvedHostError = 58,
+ kUnresolvedHostRecovered = 59,
// VERY IMPORTANT! When adding new error codes:
//
diff --git a/common/error_code_utils.cc b/common/error_code_utils.cc
index b0bbbd4..5bcbaa4 100644
--- a/common/error_code_utils.cc
+++ b/common/error_code_utils.cc
@@ -161,6 +161,12 @@
return "ErrorCode::kFirstActiveOmahaPingSentPersistenceError";
case ErrorCode::kVerityCalculationError:
return "ErrorCode::kVerityCalculationError";
+ case ErrorCode::kInternalLibCurlError:
+ return "ErrorCode::kInternalLibCurlError";
+ case ErrorCode::kUnresolvedHostError:
+ return "ErrorCode::kUnresolvedHostError";
+ case ErrorCode::kUnresolvedHostRecovered:
+ return "ErrorCode::kUnresolvedHostRecovered";
// Don't add a default case to let the compiler warn about newly added
// error codes which should be added here.
}
diff --git a/metrics_constants.h b/metrics_constants.h
index eabb8fb..137143a 100644
--- a/metrics_constants.h
+++ b/metrics_constants.h
@@ -60,6 +60,15 @@
// above block and before the kInputMalformed field. This
// is to ensure that error codes are not reordered.
+ // This error is reported when libcurl returns CURLE_COULDNT_RESOLVE_HOST and
+ // calling res_init() can recover.
+ kUnresolvedHostRecovered = 97,
+ // This error is reported when libcurl returns CURLE_COULDNT_RESOLVE_HOST.
+ kUnresolvedHostError = 98,
+ // This error is reported when libcurl has an internal error that
+ // update_engine can't recover from.
+ kInternalLibCurlError = 99,
+
// This error code is used to convey that malformed input was given
// to the utils::GetDownloadErrorCode() function. This should never
// happen but if it does it's because of an internal update_engine
diff --git a/metrics_utils.cc b/metrics_utils.cc
index 070626a..ca3b5c9 100644
--- a/metrics_utils.cc
+++ b/metrics_utils.cc
@@ -43,6 +43,9 @@
return metrics::AttemptResult::kUpdateSucceededNotActive;
case ErrorCode::kDownloadTransferError:
+ case ErrorCode::kInternalLibCurlError:
+ case ErrorCode::kUnresolvedHostError:
+ case ErrorCode::kUnresolvedHostRecovered:
return metrics::AttemptResult::kPayloadDownloadError;
case ErrorCode::kDownloadInvalidMetadataSize:
@@ -168,6 +171,13 @@
case ErrorCode::kDownloadTransferError:
return metrics::DownloadErrorCode::kDownloadError;
+ case ErrorCode::kInternalLibCurlError:
+ return metrics::DownloadErrorCode::kInternalLibCurlError;
+ case ErrorCode::kUnresolvedHostError:
+ return metrics::DownloadErrorCode::kUnresolvedHostError;
+ case ErrorCode::kUnresolvedHostRecovered:
+ return metrics::DownloadErrorCode::kUnresolvedHostRecovered;
+
// All of these error codes are not related to downloading so break
// out so we can warn and return InputMalformed.
case ErrorCode::kSuccess:
diff --git a/payload_state.cc b/payload_state.cc
index a6c3620..355552e 100644
--- a/payload_state.cc
+++ b/payload_state.cc
@@ -365,6 +365,9 @@
case ErrorCode::kNoUpdate:
case ErrorCode::kRollbackNotPossible:
case ErrorCode::kFirstActiveOmahaPingSentPersistenceError:
+ case ErrorCode::kInternalLibCurlError:
+ case ErrorCode::kUnresolvedHostError:
+ case ErrorCode::kUnresolvedHostRecovered:
LOG(INFO) << "Not incrementing URL index or failure count for this error";
break;
diff --git a/update_manager/chromeos_policy.cc b/update_manager/chromeos_policy.cc
index bdb88f8..8056f06 100644
--- a/update_manager/chromeos_policy.cc
+++ b/update_manager/chromeos_policy.cc
@@ -149,6 +149,9 @@
case ErrorCode::kNoUpdate:
case ErrorCode::kRollbackNotPossible:
case ErrorCode::kFirstActiveOmahaPingSentPersistenceError:
+ case ErrorCode::kInternalLibCurlError:
+ case ErrorCode::kUnresolvedHostError:
+ case ErrorCode::kUnresolvedHostRecovered:
LOG(INFO) << "Not changing URL index or failure count due to error "
<< chromeos_update_engine::utils::ErrorCodeToString(err_code)
<< " (" << static_cast<int>(err_code) << ")";