Add {Get,Set}CohortHint interface.
Export the "cohort hint" getter and setter in the client interfaces
(D-Bus and Binder). The cohort hint is sent to Omaha on every update
check request but can be ignored and/or reset by Omaha on every
response.
Other minor linter fixes to the affected files.
Bug: 31740109
Test: Build with D-Bus and with Binder.
Change-Id: I93214f6ffb8662c238b3351e52bf2bdf23e46a9c
diff --git a/common_service.cc b/common_service.cc
index e284a93..c2473b2 100644
--- a/common_service.cc
+++ b/common_service.cc
@@ -187,6 +187,37 @@
return true;
}
+bool UpdateEngineService::SetCohortHint(ErrorPtr* error,
+ string in_cohort_hint) {
+ PrefsInterface* prefs = system_state_->prefs();
+
+ // It is ok to override the cohort hint with an invalid value since it is
+ // stored in stateful partition. The code reading it should sanitize it
+ // anyway.
+ if (!prefs->SetString(kPrefsOmahaCohortHint, in_cohort_hint)) {
+ LogAndSetError(
+ error,
+ FROM_HERE,
+ StringPrintf("Error setting the cohort hint value to \"%s\".",
+ in_cohort_hint.c_str()));
+ return false;
+ }
+ return true;
+}
+
+bool UpdateEngineService::GetCohortHint(ErrorPtr* error,
+ string* out_cohort_hint) {
+ PrefsInterface* prefs = system_state_->prefs();
+
+ *out_cohort_hint = "";
+ if (prefs->Exists(kPrefsOmahaCohortHint) &&
+ !prefs->GetString(kPrefsOmahaCohortHint, out_cohort_hint)) {
+ LogAndSetError(error, FROM_HERE, "Error getting the cohort hint.");
+ return false;
+ }
+ return true;
+}
+
bool UpdateEngineService::SetP2PUpdatePermission(ErrorPtr* error,
bool in_enabled) {
PrefsInterface* prefs = system_state_->prefs();