shill: DeviceInfo: Prefer non-deprecated IPv6 addresses

When choosing a winner in DeviceInfo::GetPrimaryIPv6Address,
consider whether the addresses are deprecated, and prefer
non-deprecated addresses to deprecated ones.

BUG:25291735
TEST:New unit test

Change-Id: Ia1afe1586758fbe5f22d2bbbf431db430bcb58f0
2 files changed
tree: 7dea348ac0e44696046182fc2cb08bc144ef78d2
  1. bin/
  2. cellular/
  3. dbus/
  4. dbus_bindings/
  5. dhcp/
  6. doc/
  7. ethernet/
  8. init/
  9. mobile_operator_db/
  10. net/
  11. pppoe/
  12. setup_wifi/
  13. shims/
  14. supplicant/
  15. test-rpc-proxy/
  16. test-scripts/
  17. udev/
  18. upstart/
  19. vpn/
  20. wifi/
  21. wimax/
  22. .gitignore
  23. accessor_interface.h
  24. active_link_monitor.cc
  25. active_link_monitor.h
  26. active_link_monitor_unittest.cc
  27. adaptor_interfaces.h
  28. Android.mk
  29. arp_client.cc
  30. arp_client.h
  31. arp_client_test_helper.cc
  32. arp_client_test_helper.h
  33. arp_client_unittest.cc
  34. arp_packet.cc
  35. arp_packet.h
  36. arp_packet_unittest.cc
  37. async_connection.cc
  38. async_connection.h
  39. async_connection_unittest.cc
  40. callbacks.h
  41. certificate_file.cc
  42. certificate_file.h
  43. certificate_file_unittest.cc
  44. chromeos_daemon.cc
  45. chromeos_daemon.h
  46. chromeos_daemon_unittest.cc
  47. connection.cc
  48. connection.h
  49. connection_diagnostics.cc
  50. connection_diagnostics.h
  51. connection_diagnostics_unittest.cc
  52. connection_health_checker.cc
  53. connection_health_checker.h
  54. connection_health_checker_unittest.cc
  55. connection_info.cc
  56. connection_info.h
  57. connection_info_reader.cc
  58. connection_info_reader.h
  59. connection_info_reader_unittest.cc
  60. connection_info_unittest.cc
  61. connection_tester.cc
  62. connection_tester.h
  63. connection_tester_unittest.cc
  64. connection_unittest.cc
  65. connectivity_trial.cc
  66. connectivity_trial.h
  67. connectivity_trial_unittest.cc
  68. control_interface.h
  69. crypto_des_cbc.cc
  70. crypto_des_cbc.h
  71. crypto_des_cbc_unittest.cc
  72. crypto_interface.h
  73. crypto_provider.cc
  74. crypto_provider.h
  75. crypto_provider_unittest.cc
  76. crypto_rot47.cc
  77. crypto_rot47.h
  78. crypto_rot47_unittest.cc
  79. crypto_util_proxy.cc
  80. crypto_util_proxy.h
  81. crypto_util_proxy_unittest.cc
  82. dbus_properties_proxy_interface.h
  83. default_profile.cc
  84. default_profile.h
  85. default_profile_unittest.cc
  86. device.cc
  87. device.h
  88. device_claimer.cc
  89. device_claimer.h
  90. device_claimer_unittest.cc
  91. device_info.cc
  92. device_info.h
  93. device_info_unittest.cc
  94. device_stub.h
  95. device_unittest.cc
  96. dhcp_properties.cc
  97. dhcp_properties.h
  98. dhcp_properties_unittest.cc
  99. dns_client.cc
  100. dns_client.h
  101. dns_client_factory.cc
  102. dns_client_factory.h
  103. dns_client_unittest.cc
  104. dns_server_proxy.cc
  105. dns_server_proxy.h
  106. dns_server_proxy_factory.cc
  107. dns_server_proxy_factory.h
  108. dns_server_tester.cc
  109. dns_server_tester.h
  110. dns_server_tester_unittest.cc
  111. eap_credentials.cc
  112. eap_credentials.h
  113. eap_credentials_unittest.cc
  114. eap_listener.cc
  115. eap_listener.h
  116. eap_listener_unittest.cc
  117. eap_protocol.h
  118. ephemeral_profile.cc
  119. ephemeral_profile.h
  120. error.cc
  121. error.h
  122. error_unittest.cc
  123. event_dispatcher.cc
  124. event_dispatcher.h
  125. external_task.cc
  126. external_task.h
  127. external_task_unittest.cc
  128. fake_store.cc
  129. fake_store.h
  130. file_io.cc
  131. file_io.h
  132. file_reader.cc
  133. file_reader.h
  134. file_reader_unittest.cc
  135. firewall_proxy_interface.h
  136. geolocation_info.cc
  137. geolocation_info.h
  138. HACKING
  139. hook_table.cc
  140. hook_table.h
  141. hook_table_unittest.cc
  142. http_proxy.cc
  143. http_proxy.h
  144. http_proxy_unittest.cc
  145. http_request.cc
  146. http_request.h
  147. http_request_unittest.cc
  148. http_url.cc
  149. http_url.h
  150. http_url_unittest.cc
  151. icmp.cc
  152. icmp.h
  153. icmp_session.cc
  154. icmp_session.h
  155. icmp_session_factory.cc
  156. icmp_session_factory.h
  157. icmp_session_unittest.cc
  158. icmp_unittest.cc
  159. ip_address_store.cc
  160. ip_address_store.h
  161. ip_address_store_unittest.cc
  162. ipconfig.cc
  163. ipconfig.h
  164. ipconfig_unittest.cc
  165. json_store.cc
  166. json_store.h
  167. json_store_unittest.cc
  168. key_file_store.cc
  169. key_file_store.h
  170. key_file_store_unittest.cc
  171. key_value_store.cc
  172. key_value_store.h
  173. key_value_store_unittest.cc
  174. libshill-client-test.pc.in
  175. libshill-client.pc.in
  176. link_monitor.cc
  177. link_monitor.h
  178. link_monitor_unittest.cc
  179. logging.cc
  180. logging.h
  181. manager.cc
  182. manager.h
  183. manager_unittest.cc
  184. metrics.cc
  185. metrics.h
  186. metrics_unittest.cc
  187. mock_active_link_monitor.cc
  188. mock_active_link_monitor.h
  189. mock_adaptors.cc
  190. mock_adaptors.h
  191. mock_ares.cc
  192. mock_ares.h
  193. mock_arp_client.cc
  194. mock_arp_client.h
  195. mock_async_connection.cc
  196. mock_async_connection.h
  197. mock_certificate_file.cc
  198. mock_certificate_file.h
  199. mock_connection.cc
  200. mock_connection.h
  201. mock_connection_health_checker.cc
  202. mock_connection_health_checker.h
  203. mock_connection_info_reader.cc
  204. mock_connection_info_reader.h
  205. mock_connectivity_trial.cc
  206. mock_connectivity_trial.h
  207. mock_control.cc
  208. mock_control.h
  209. mock_crypto_util_proxy.cc
  210. mock_crypto_util_proxy.h
  211. mock_dbus_manager.cc
  212. mock_dbus_manager.h
  213. mock_dbus_properties_proxy.cc
  214. mock_dbus_properties_proxy.h
  215. mock_device.cc
  216. mock_device.h
  217. mock_device_claimer.cc
  218. mock_device_claimer.h
  219. mock_device_info.cc
  220. mock_device_info.h
  221. mock_dhcp_properties.cc
  222. mock_dhcp_properties.h
  223. mock_dns_client.cc
  224. mock_dns_client.h
  225. mock_dns_client_factory.cc
  226. mock_dns_client_factory.h
  227. mock_dns_server_proxy.cc
  228. mock_dns_server_proxy.h
  229. mock_dns_server_proxy_factory.cc
  230. mock_dns_server_proxy_factory.h
  231. mock_dns_server_tester.cc
  232. mock_dns_server_tester.h
  233. mock_eap_credentials.cc
  234. mock_eap_credentials.h
  235. mock_eap_listener.cc
  236. mock_eap_listener.h
  237. mock_event_dispatcher.cc
  238. mock_event_dispatcher.h
  239. mock_external_task.cc
  240. mock_external_task.h
  241. mock_file_io.h
  242. mock_firewall_proxy.h
  243. mock_http_request.cc
  244. mock_http_request.h
  245. mock_icmp.cc
  246. mock_icmp.h
  247. mock_icmp_session.cc
  248. mock_icmp_session.h
  249. mock_icmp_session_factory.cc
  250. mock_icmp_session_factory.h
  251. mock_ip_address_store.cc
  252. mock_ip_address_store.h
  253. mock_ipconfig.cc
  254. mock_ipconfig.h
  255. mock_link_monitor.cc
  256. mock_link_monitor.h
  257. mock_log.cc
  258. mock_log.h
  259. mock_log_unittest.cc
  260. mock_manager.cc
  261. mock_manager.h
  262. mock_metrics.cc
  263. mock_metrics.h
  264. mock_passive_link_monitor.cc
  265. mock_passive_link_monitor.h
  266. mock_pending_activation_store.cc
  267. mock_pending_activation_store.h
  268. mock_portal_detector.cc
  269. mock_portal_detector.h
  270. mock_power_manager.cc
  271. mock_power_manager.h
  272. mock_power_manager_proxy.cc
  273. mock_power_manager_proxy.h
  274. mock_ppp_device.cc
  275. mock_ppp_device.h
  276. mock_ppp_device_factory.cc
  277. mock_ppp_device_factory.h
  278. mock_process_manager.cc
  279. mock_process_manager.h
  280. mock_profile.cc
  281. mock_profile.h
  282. mock_property_store.cc
  283. mock_property_store.h
  284. mock_resolver.cc
  285. mock_resolver.h
  286. mock_routing_table.cc
  287. mock_routing_table.h
  288. mock_service.cc
  289. mock_service.h
  290. mock_service_watcher.h
  291. mock_socket_info_reader.cc
  292. mock_socket_info_reader.h
  293. mock_store.cc
  294. mock_store.h
  295. mock_traffic_monitor.cc
  296. mock_traffic_monitor.h
  297. mock_virtual_device.cc
  298. mock_virtual_device.h
  299. MODULE_LICENSE_APACHE2
  300. NETLINK_MESSAGES.txt
  301. nice_mock_control.cc
  302. nice_mock_control.h
  303. NOTICE
  304. OWNERS
  305. passive_link_monitor.cc
  306. passive_link_monitor.h
  307. passive_link_monitor_unittest.cc
  308. pending_activation_store.cc
  309. pending_activation_store.h
  310. pending_activation_store_unittest.cc
  311. portal_detector.cc
  312. portal_detector.h
  313. portal_detector_unittest.cc
  314. power_manager.cc
  315. power_manager.h
  316. power_manager_proxy_interface.h
  317. power_manager_proxy_stub.cc
  318. power_manager_proxy_stub.h
  319. power_manager_unittest.cc
  320. ppp_daemon.cc
  321. ppp_daemon.h
  322. ppp_daemon_unittest.cc
  323. ppp_device.cc
  324. ppp_device.h
  325. ppp_device_factory.cc
  326. ppp_device_factory.h
  327. ppp_device_unittest.cc
  328. PRESUBMIT.cfg
  329. process_manager.cc
  330. process_manager.h
  331. process_manager_unittest.cc
  332. profile.cc
  333. profile.h
  334. profile_unittest.cc
  335. property_accessor.h
  336. property_accessor_unittest.cc
  337. property_iterator.h
  338. property_observer.h
  339. property_observer_interface.h
  340. property_observer_unittest.cc
  341. property_store.cc
  342. property_store.h
  343. property_store_unittest.cc
  344. property_store_unittest.h
  345. protobuf_lite_streams.cc
  346. protobuf_lite_streams.h
  347. provider_db_unittest.bfd
  348. provider_interface.h
  349. refptr_types.h
  350. resolver.cc
  351. resolver.h
  352. resolver_unittest.cc
  353. result_aggregator.cc
  354. result_aggregator.h
  355. result_aggregator_unittest.cc
  356. routing_table.cc
  357. routing_table.h
  358. routing_table_entry.h
  359. routing_table_unittest.cc
  360. rpc_service_watcher_interface.h
  361. rpc_task.cc
  362. rpc_task.h
  363. rpc_task_unittest.cc
  364. scope_logger.cc
  365. scope_logger.h
  366. scope_logger_unittest.cc
  367. scoped_umask.cc
  368. scoped_umask.h
  369. service.cc
  370. service.h
  371. service_property_change_notifier.cc
  372. service_property_change_notifier.h
  373. service_property_change_test.cc
  374. service_property_change_test.h
  375. service_sorter.h
  376. service_under_test.cc
  377. service_under_test.h
  378. service_unittest.cc
  379. shill-client.gyp
  380. shill.gyp
  381. shill.gypi
  382. shill.rc
  383. shill_ares.cc
  384. shill_ares.h
  385. shill_config.cc
  386. shill_config.h
  387. shill_daemon.cc
  388. shill_daemon.h
  389. shill_main.cc
  390. shill_test_config.cc
  391. shill_test_config.h
  392. shill_unittest.cc
  393. socket_info.cc
  394. socket_info.h
  395. socket_info_reader.cc
  396. socket_info_reader.h
  397. socket_info_reader_unittest.cc
  398. socket_info_unittest.cc
  399. static_ip_parameters.cc
  400. static_ip_parameters.h
  401. static_ip_parameters_unittest.cc
  402. store_factory.cc
  403. store_factory.h
  404. store_interface.h
  405. stub_storage.h
  406. technology.cc
  407. technology.h
  408. technology_unittest.cc
  409. test_event_dispatcher.h
  410. TESTING
  411. testing.h
  412. testrunner.cc
  413. tethering.cc
  414. tethering.h
  415. traffic_monitor.cc
  416. traffic_monitor.h
  417. traffic_monitor_unittest.cc
  418. virtual_device.cc
  419. virtual_device.h
  420. virtual_device_unittest.cc