shill: Connnection: Ignore invalid IP addresses for GetSubnet

If the local address for a connection is invalid, we should
return an empty string (instead of possibly crashing).  The
manager should in turn not bucket two such subnets into the
same subnet bucket.

BUG=chromium:430041
TEST=Unit tests

Change-Id: If2c82d28ddadac7af9841a5a672bc61c91da4796
Reviewed-on: https://chromium-review.googlesource.com/231672
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
4 files changed
tree: 4495a7b32ac328acedf0e7c5631c0058d73b8991
  1. bin/
  2. cellular/
  3. dbus_bindings/
  4. doc/
  5. ethernet/
  6. init/
  7. mobile_operator_db/
  8. net/
  9. shims/
  10. supplicant/
  11. test-scripts/
  12. udev/
  13. vpn/
  14. wifi/
  15. wimax/
  16. .gitignore
  17. accessor_interface.h
  18. adaptor_interfaces.h
  19. arp_client.cc
  20. arp_client.h
  21. arp_client_unittest.cc
  22. arp_packet.cc
  23. arp_packet.h
  24. arp_packet_unittest.cc
  25. async_connection.cc
  26. async_connection.h
  27. async_connection_unittest.cc
  28. callbacks.h
  29. certificate_file.cc
  30. certificate_file.h
  31. certificate_file_unittest.cc
  32. connection.cc
  33. connection.h
  34. connection_health_checker.cc
  35. connection_health_checker.h
  36. connection_health_checker_unittest.cc
  37. connection_info.cc
  38. connection_info.h
  39. connection_info_reader.cc
  40. connection_info_reader.h
  41. connection_info_reader_unittest.cc
  42. connection_info_unittest.cc
  43. connection_tester.cc
  44. connection_tester.h
  45. connection_tester_unittest.cc
  46. connection_unittest.cc
  47. connectivity_trial.cc
  48. connectivity_trial.h
  49. connectivity_trial_unittest.cc
  50. control_interface.h
  51. crypto_des_cbc.cc
  52. crypto_des_cbc.h
  53. crypto_des_cbc_unittest.cc
  54. crypto_interface.h
  55. crypto_provider.cc
  56. crypto_provider.h
  57. crypto_provider_unittest.cc
  58. crypto_rot47.cc
  59. crypto_rot47.h
  60. crypto_rot47_unittest.cc
  61. crypto_util_proxy.cc
  62. crypto_util_proxy.h
  63. crypto_util_proxy_unittest.cc
  64. dbus_adaptor.cc
  65. dbus_adaptor.h
  66. dbus_adaptor_unittest.cc
  67. dbus_async_call_helper.h
  68. dbus_control.cc
  69. dbus_control.h
  70. dbus_manager.cc
  71. dbus_manager.h
  72. dbus_manager_unittest.cc
  73. dbus_name_watcher.cc
  74. dbus_name_watcher.h
  75. dbus_name_watcher_unittest.cc
  76. dbus_properties.cc
  77. dbus_properties.h
  78. dbus_properties_proxy.cc
  79. dbus_properties_proxy.h
  80. dbus_properties_proxy_interface.h
  81. dbus_properties_unittest.cc
  82. dbus_property_matchers.h
  83. dbus_service_proxy.cc
  84. dbus_service_proxy.h
  85. dbus_service_proxy_interface.h
  86. dbus_variant_gmock_printer.cc
  87. dbus_variant_gmock_printer.h
  88. default_profile.cc
  89. default_profile.h
  90. default_profile_unittest.cc
  91. device.cc
  92. device.h
  93. device_dbus_adaptor.cc
  94. device_dbus_adaptor.h
  95. device_info.cc
  96. device_info.h
  97. device_info_unittest.cc
  98. device_stub.h
  99. device_unittest.cc
  100. dhcp_config.cc
  101. dhcp_config.h
  102. dhcp_config_unittest.cc
  103. dhcp_provider.cc
  104. dhcp_provider.h
  105. dhcp_provider_unittest.cc
  106. dhcp_proxy_interface.h
  107. dhcpcd_proxy.cc
  108. dhcpcd_proxy.h
  109. diagnostics_reporter.cc
  110. diagnostics_reporter.h
  111. diagnostics_reporter_unittest.cc
  112. dns_client.cc
  113. dns_client.h
  114. dns_client_factory.cc
  115. dns_client_factory.h
  116. dns_client_unittest.cc
  117. dns_server_tester.cc
  118. dns_server_tester.h
  119. dns_server_tester_unittest.cc
  120. eap_credentials.cc
  121. eap_credentials.h
  122. eap_credentials_unittest.cc
  123. eap_listener.cc
  124. eap_listener.h
  125. eap_listener_unittest.cc
  126. eap_protocol.h
  127. endpoint.cc
  128. endpoint.h
  129. ephemeral_profile.cc
  130. ephemeral_profile.h
  131. error.cc
  132. error.h
  133. error_unittest.cc
  134. event_dispatcher.cc
  135. event_dispatcher.h
  136. external_task.cc
  137. external_task.h
  138. external_task_unittest.cc
  139. file_io.cc
  140. file_io.h
  141. file_reader.cc
  142. file_reader.h
  143. file_reader_unittest.cc
  144. geolocation_info.cc
  145. geolocation_info.h
  146. glib.cc
  147. glib.h
  148. glib_io_handler_factory.cc
  149. glib_io_handler_factory.h
  150. glib_io_input_handler.cc
  151. glib_io_input_handler.h
  152. glib_io_ready_handler.cc
  153. glib_io_ready_handler.h
  154. HACKING
  155. hook_table.cc
  156. hook_table.h
  157. hook_table_unittest.cc
  158. http_proxy.cc
  159. http_proxy.h
  160. http_proxy_unittest.cc
  161. http_request.cc
  162. http_request.h
  163. http_request_unittest.cc
  164. http_url.cc
  165. http_url.h
  166. http_url_unittest.cc
  167. icmp.cc
  168. icmp.h
  169. icmp_unittest.cc
  170. ip_address_store.cc
  171. ip_address_store.h
  172. ip_address_store_unittest.cc
  173. ipconfig.cc
  174. ipconfig.h
  175. ipconfig_dbus_adaptor.cc
  176. ipconfig_dbus_adaptor.h
  177. ipconfig_unittest.cc
  178. key_file_store.cc
  179. key_file_store.h
  180. key_file_store_unittest.cc
  181. key_value_store.cc
  182. key_value_store.h
  183. key_value_store_unittest.cc
  184. link_monitor.cc
  185. link_monitor.h
  186. link_monitor_unittest.cc
  187. logging.cc
  188. logging.h
  189. manager.cc
  190. manager.h
  191. manager_dbus_adaptor.cc
  192. manager_dbus_adaptor.h
  193. manager_unittest.cc
  194. metrics.cc
  195. metrics.h
  196. metrics_unittest.cc
  197. mock_adaptors.cc
  198. mock_adaptors.h
  199. mock_ares.cc
  200. mock_ares.h
  201. mock_arp_client.cc
  202. mock_arp_client.h
  203. mock_async_connection.cc
  204. mock_async_connection.h
  205. mock_certificate_file.cc
  206. mock_certificate_file.h
  207. mock_connection.cc
  208. mock_connection.h
  209. mock_connection_health_checker.cc
  210. mock_connection_health_checker.h
  211. mock_connection_info_reader.cc
  212. mock_connection_info_reader.h
  213. mock_connectivity_trial.cc
  214. mock_connectivity_trial.h
  215. mock_control.cc
  216. mock_control.h
  217. mock_crypto_util_proxy.cc
  218. mock_crypto_util_proxy.h
  219. mock_dbus_properties_proxy.cc
  220. mock_dbus_properties_proxy.h
  221. mock_dbus_service_proxy.cc
  222. mock_dbus_service_proxy.h
  223. mock_device.cc
  224. mock_device.h
  225. mock_device_info.cc
  226. mock_device_info.h
  227. mock_dhcp_config.cc
  228. mock_dhcp_config.h
  229. mock_dhcp_provider.cc
  230. mock_dhcp_provider.h
  231. mock_dhcp_proxy.cc
  232. mock_dhcp_proxy.h
  233. mock_diagnostics_reporter.cc
  234. mock_diagnostics_reporter.h
  235. mock_dns_client.cc
  236. mock_dns_client.h
  237. mock_dns_client_factory.cc
  238. mock_dns_client_factory.h
  239. mock_dns_server_tester.cc
  240. mock_dns_server_tester.h
  241. mock_eap_credentials.cc
  242. mock_eap_credentials.h
  243. mock_eap_listener.cc
  244. mock_eap_listener.h
  245. mock_event_dispatcher.cc
  246. mock_event_dispatcher.h
  247. mock_external_task.cc
  248. mock_external_task.h
  249. mock_file_io.h
  250. mock_glib.cc
  251. mock_glib.h
  252. mock_http_request.cc
  253. mock_http_request.h
  254. mock_ip_address_store.cc
  255. mock_ip_address_store.h
  256. mock_ipconfig.cc
  257. mock_ipconfig.h
  258. mock_link_monitor.cc
  259. mock_link_monitor.h
  260. mock_log.cc
  261. mock_log.h
  262. mock_log_unittest.cc
  263. mock_manager.cc
  264. mock_manager.h
  265. mock_metrics.cc
  266. mock_metrics.h
  267. mock_pending_activation_store.cc
  268. mock_pending_activation_store.h
  269. mock_portal_detector.cc
  270. mock_portal_detector.h
  271. mock_power_manager.cc
  272. mock_power_manager.h
  273. mock_power_manager_proxy.cc
  274. mock_power_manager_proxy.h
  275. mock_ppp_device.cc
  276. mock_ppp_device.h
  277. mock_ppp_device_factory.cc
  278. mock_ppp_device_factory.h
  279. mock_process_killer.cc
  280. mock_process_killer.h
  281. mock_profile.cc
  282. mock_profile.h
  283. mock_property_store.cc
  284. mock_property_store.h
  285. mock_proxy_factory.cc
  286. mock_proxy_factory.h
  287. mock_resolver.cc
  288. mock_resolver.h
  289. mock_routing_table.cc
  290. mock_routing_table.h
  291. mock_service.cc
  292. mock_service.h
  293. mock_socket_info_reader.cc
  294. mock_socket_info_reader.h
  295. mock_store.cc
  296. mock_store.h
  297. mock_traffic_monitor.cc
  298. mock_traffic_monitor.h
  299. mock_virtual_device.cc
  300. mock_virtual_device.h
  301. NETLINK_MESSAGES.txt
  302. nice_mock_control.cc
  303. nice_mock_control.h
  304. OWNERS
  305. pending_activation_store.cc
  306. pending_activation_store.h
  307. pending_activation_store_unittest.cc
  308. portal_detector.cc
  309. portal_detector.h
  310. portal_detector_unittest.cc
  311. power_manager.cc
  312. power_manager.h
  313. power_manager_proxy.cc
  314. power_manager_proxy.h
  315. power_manager_proxy_interface.h
  316. power_manager_unittest.cc
  317. ppp_device.cc
  318. ppp_device.h
  319. ppp_device_factory.cc
  320. ppp_device_factory.h
  321. ppp_device_unittest.cc
  322. process_killer.cc
  323. process_killer.h
  324. process_killer_unittest.cc
  325. profile.cc
  326. profile.h
  327. profile_dbus_adaptor.cc
  328. profile_dbus_adaptor.h
  329. profile_dbus_property_exporter.cc
  330. profile_dbus_property_exporter.h
  331. profile_dbus_property_exporter_unittest.cc
  332. profile_unittest.cc
  333. property_accessor.h
  334. property_accessor_unittest.cc
  335. property_iterator.h
  336. property_observer.h
  337. property_observer_interface.h
  338. property_observer_unittest.cc
  339. property_store.cc
  340. property_store.h
  341. property_store_unittest.cc
  342. property_store_unittest.h
  343. protobuf_lite_streams.cc
  344. protobuf_lite_streams.h
  345. provider_db_unittest.bfd
  346. provider_interface.h
  347. proxy_factory.cc
  348. proxy_factory.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_task.cc
  361. rpc_task.h
  362. rpc_task_dbus_adaptor.cc
  363. rpc_task_dbus_adaptor.h
  364. rpc_task_unittest.cc
  365. scope_logger.cc
  366. scope_logger.h
  367. scope_logger_unittest.cc
  368. scoped_umask.cc
  369. scoped_umask.h
  370. service.cc
  371. service.h
  372. service_dbus_adaptor.cc
  373. service_dbus_adaptor.h
  374. service_property_change_notifier.cc
  375. service_property_change_notifier.h
  376. service_property_change_test.cc
  377. service_property_change_test.h
  378. service_sorter.h
  379. service_under_test.cc
  380. service_under_test.h
  381. service_unittest.cc
  382. shill.gyp
  383. shill.gypi
  384. shill_ares.cc
  385. shill_ares.h
  386. shill_config.cc
  387. shill_config.h
  388. shill_daemon.cc
  389. shill_daemon.h
  390. shill_export.h
  391. shill_main.cc
  392. shill_test_config.cc
  393. shill_test_config.h
  394. shill_unittest.cc
  395. socket_info.cc
  396. socket_info.h
  397. socket_info_reader.cc
  398. socket_info_reader.h
  399. socket_info_reader_unittest.cc
  400. socket_info_unittest.cc
  401. static_ip_parameters.cc
  402. static_ip_parameters.h
  403. static_ip_parameters_unittest.cc
  404. store_interface.h
  405. stub_storage.h
  406. technology.cc
  407. technology.h
  408. technology_unittest.cc
  409. TESTING
  410. testing.h
  411. testrunner.cc
  412. tethering.cc
  413. tethering.h
  414. traffic_monitor.cc
  415. traffic_monitor.h
  416. traffic_monitor_unittest.cc
  417. virtual_device.cc
  418. virtual_device.h
  419. virtual_device_unittest.cc