Send "success reboot" only after an update.

The <event> message sent to omaha after we reboot into a new version
was originally sent only on the first updatecheck after rebooting into
the new installed version, and included the old version number. A bug
introduced in 2013 removed the check for the empty previous version
making the update_engine send this message on *every* updatecheck. This
patch inserts back the check for the empty previous version to send the
"success reboot" event only after.

While there are still discussions about what's the right event message
to send on that case, this fixes the regression.

Bug: 24867646
Test: FEATURES=test emerge-link update_engine; second <updatecheck> didn't include the <event>

Change-Id: Icd00364aae15c8bf420f1f89ae7b526999b3a124
2 files changed
tree: e194769a239e4e2249b06a059c6fefa8960b315f
  1. client_library/
  2. dbus_bindings/
  3. include/
  4. init/
  5. payload_generator/
  6. sample_images/
  7. update_manager/
  8. update_payload_key/
  9. .gitignore
  10. action.h
  11. action_pipe.h
  12. action_pipe_unittest.cc
  13. action_processor.cc
  14. action_processor.h
  15. action_processor_unittest.cc
  16. action_unittest.cc
  17. Android.mk
  18. boot_control.h
  19. boot_control_android.cc
  20. boot_control_android.h
  21. boot_control_chromeos.cc
  22. boot_control_chromeos.h
  23. boot_control_chromeos_unittest.cc
  24. boot_control_interface.h
  25. boot_control_stub.cc
  26. boot_control_stub.h
  27. bzip_extent_writer.cc
  28. bzip_extent_writer.h
  29. bzip_extent_writer_unittest.cc
  30. certificate_checker.cc
  31. certificate_checker.h
  32. certificate_checker_unittest.cc
  33. chrome_browser_proxy_resolver.cc
  34. chrome_browser_proxy_resolver.h
  35. chrome_browser_proxy_resolver_unittest.cc
  36. clock.cc
  37. clock.h
  38. clock_interface.h
  39. connection_manager.cc
  40. connection_manager.h
  41. connection_manager_interface.h
  42. connection_manager_unittest.cc
  43. constants.cc
  44. constants.h
  45. daemon.cc
  46. daemon.h
  47. dbus_service.cc
  48. dbus_service.h
  49. dbus_service_unittest.cc
  50. dbus_test_utils.h
  51. delta_performer.cc
  52. delta_performer.h
  53. delta_performer_integration_test.cc
  54. delta_performer_unittest.cc
  55. download_action.cc
  56. download_action.h
  57. download_action_unittest.cc
  58. error_code.h
  59. extent_writer.cc
  60. extent_writer.h
  61. extent_writer_unittest.cc
  62. fake_boot_control.h
  63. fake_clock.h
  64. fake_extent_writer.h
  65. fake_file_writer.h
  66. fake_hardware.h
  67. fake_p2p_manager.h
  68. fake_p2p_manager_configuration.h
  69. fake_prefs.cc
  70. fake_prefs.h
  71. fake_shill_proxy.cc
  72. fake_shill_proxy.h
  73. fake_system_state.cc
  74. fake_system_state.h
  75. file_descriptor.cc
  76. file_descriptor.h
  77. file_writer.cc
  78. file_writer.h
  79. file_writer_unittest.cc
  80. filesystem_verifier_action.cc
  81. filesystem_verifier_action.h
  82. filesystem_verifier_action_unittest.cc
  83. generate_pc_file.sh
  84. hardware.h
  85. hardware_android.cc
  86. hardware_android.h
  87. hardware_chromeos.cc
  88. hardware_chromeos.h
  89. hardware_interface.h
  90. http_common.cc
  91. http_common.h
  92. http_fetcher.cc
  93. http_fetcher.h
  94. http_fetcher_unittest.cc
  95. hwid_override.cc
  96. hwid_override.h
  97. hwid_override_unittest.cc
  98. image_properties.h
  99. image_properties_android.cc
  100. image_properties_chromeos.cc
  101. install_plan.cc
  102. install_plan.h
  103. libcros_proxy.cc
  104. libcros_proxy.h
  105. libcurl_http_fetcher.cc
  106. libcurl_http_fetcher.h
  107. libupdate_engine-client-test.pc.in
  108. libupdate_engine-client.pc.in
  109. local_coverage_rate
  110. main.cc
  111. metrics.cc
  112. metrics.h
  113. mock_action.h
  114. mock_action_processor.h
  115. mock_certificate_checker.h
  116. mock_connection_manager.h
  117. mock_file_writer.h
  118. mock_hardware.h
  119. mock_http_fetcher.cc
  120. mock_http_fetcher.h
  121. mock_omaha_request_params.h
  122. mock_p2p_manager.h
  123. mock_payload_state.h
  124. mock_prefs.h
  125. mock_update_attempter.h
  126. MODULE_LICENSE_APACHE2
  127. mtd_file_descriptor.cc
  128. mtd_file_descriptor.h
  129. multi_range_http_fetcher.cc
  130. multi_range_http_fetcher.h
  131. NOTICE
  132. omaha_hash_calculator.cc
  133. omaha_hash_calculator.h
  134. omaha_hash_calculator_unittest.cc
  135. omaha_request_action.cc
  136. omaha_request_action.h
  137. omaha_request_action_unittest.cc
  138. omaha_request_params.cc
  139. omaha_request_params.h
  140. omaha_request_params_unittest.cc
  141. omaha_response.h
  142. omaha_response_handler_action.cc
  143. omaha_response_handler_action.h
  144. omaha_response_handler_action_unittest.cc
  145. OWNERS
  146. p2p_manager.cc
  147. p2p_manager.h
  148. p2p_manager_unittest.cc
  149. payload_constants.cc
  150. payload_constants.h
  151. payload_state.cc
  152. payload_state.h
  153. payload_state_interface.h
  154. payload_state_unittest.cc
  155. payload_verifier.cc
  156. payload_verifier.h
  157. platform_constants.h
  158. platform_constants_android.cc
  159. platform_constants_chromeos.cc
  160. postinstall_runner_action.cc
  161. postinstall_runner_action.h
  162. postinstall_runner_action_unittest.cc
  163. prefs.cc
  164. prefs.h
  165. prefs_interface.h
  166. prefs_unittest.cc
  167. PRESUBMIT.cfg
  168. proxy_resolver.cc
  169. proxy_resolver.h
  170. real_system_state.cc
  171. real_system_state.h
  172. run_unittests
  173. sample_omaha_v3_response.xml
  174. shill_proxy.cc
  175. shill_proxy.h
  176. shill_proxy_interface.h
  177. subprocess.cc
  178. subprocess.h
  179. subprocess_unittest.cc
  180. system_state.h
  181. tar_bunzip2.gypi
  182. terminator.cc
  183. terminator.h
  184. terminator_unittest.cc
  185. test_http_server.cc
  186. test_utils.cc
  187. test_utils.h
  188. testrunner.cc
  189. unittest_key.pem
  190. unittest_key2.pem
  191. update_attempter.cc
  192. update_attempter.h
  193. update_attempter_unittest.cc
  194. update_engine-client.gyp
  195. update_engine.conf
  196. update_engine.gyp
  197. update_engine.rc
  198. update_engine_client.cc
  199. update_metadata.proto
  200. update_status_utils.cc
  201. update_status_utils.h
  202. UpdateEngine.conf
  203. utils.cc
  204. utils.h
  205. utils_unittest.cc
  206. WATCHLISTS
  207. xz_extent_writer.cc
  208. xz_extent_writer.h
  209. xz_extent_writer_unittest.cc