Index: main.cc |
diff --git a/main.cc b/main.cc |
index bdd216c9790009d87aac21ed688f39b81ad46a3b..9e7a1effe283f23a9cdc666c0eafd17ad9959157 100644 |
--- a/main.cc |
+++ b/main.cc |
@@ -16,6 +16,7 @@ |
#include "update_engine/dbus_service.h" |
#include "update_engine/prefs.h" |
#include "update_engine/update_attempter.h" |
+#include "update_engine/utils.h" |
extern "C" { |
#include "update_engine/update_engine.dbusserver.h" |
@@ -34,15 +35,28 @@ namespace chromeos_update_engine { |
namespace { |
-struct PeriodicallyUpdateArgs { |
- UpdateAttempter* update_attempter; |
- gboolean should_repeat; |
-}; |
+gboolean UpdateOnce(void* arg) { |
+ UpdateAttempter* update_attempter = reinterpret_cast<UpdateAttempter*>(arg); |
+ update_attempter->Update("", ""); |
+ return FALSE; |
+} |
-gboolean PeriodicallyUpdate(void* arg) { |
- PeriodicallyUpdateArgs* args = reinterpret_cast<PeriodicallyUpdateArgs*>(arg); |
- args->update_attempter->Update("", ""); |
- return args->should_repeat; |
+gboolean UpdatePeriodically(void* arg) { |
+ UpdateAttempter* update_attempter = reinterpret_cast<UpdateAttempter*>(arg); |
+ update_attempter->Update("", ""); |
+ return TRUE; |
+} |
+ |
+void SchedulePeriodicUpdateChecks(UpdateAttempter* update_attempter) { |
+ if (!utils::IsOfficialBuild()) { |
+ LOG(WARNING) << "No periodic update checks on non-official builds."; |
+ return; |
+ } |
+ |
+ // Kick off periodic updating. First, update after 2 minutes. Also, update |
+ // every 30 minutes. |
+ g_timeout_add(2 * 60 * 1000, &UpdateOnce, update_attempter); |
+ g_timeout_add(30 * 60 * 1000, &UpdatePeriodically, update_attempter); |
} |
void SetupDbusService(UpdateEngineService* service) { |
@@ -126,19 +140,7 @@ int main(int argc, char** argv) { |
update_attempter.set_dbus_service(service); |
chromeos_update_engine::SetupDbusService(service); |
- // Kick off periodic updating. First, update after 2 minutes. Also, update |
- // every 30 minutes. |
- chromeos_update_engine::PeriodicallyUpdateArgs two_min_args = |
- {&update_attempter, FALSE}; |
- g_timeout_add(2 * 60 * 1000, |
- &chromeos_update_engine::PeriodicallyUpdate, |
- &two_min_args); |
- |
- chromeos_update_engine::PeriodicallyUpdateArgs thirty_min_args = |
- {&update_attempter, TRUE}; |
- g_timeout_add(30 * 60 * 1000, |
- &chromeos_update_engine::PeriodicallyUpdate, |
- &thirty_min_args); |
+ chromeos_update_engine::SchedulePeriodicUpdateChecks(&update_attempter); |
// Run the main loop until exit time: |
g_main_loop_run(loop); |