shill: Make IPAddress copiable and with prefix

We are finally in a place where it is painful to continue to avoid
using an IPAddress in an STL datatype, since we're going to be
holding on the the list of IP addresses that a given device has.
The RoutingTable code did a bit of gymnastics to get around the
non-copyable hurdle, so clear those now.

Also, in many cases IP addresses are specified with a bit prefix
indicating what portion of the address common to the broadcast
domain for that network.  Allow this to be specified.  Push this
change forward into all the unit tests.

BUG=chromium-os:19744
TEST=Reran unit tests

Change-Id: Iee2f84a5126b4a1162b5d9e0fc416207ba185be0
Reviewed-on: http://gerrit.chromium.org/gerrit/7024
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
6 files changed
tree: 76a35aa637797dd8c741f02a5c1ff337289563a5
  1. dbus_bindings/
  2. accessor_interface.h
  3. adaptor_interfaces.h
  4. byte_string.cc
  5. byte_string.h
  6. byte_string_unittest.cc
  7. cellular.cc
  8. cellular.h
  9. cellular_service.cc
  10. cellular_service.h
  11. cellular_unittest.cc
  12. connection.cc
  13. connection.h
  14. connection_unittest.cc
  15. control_interface.h
  16. crypto_des_cbc.cc
  17. crypto_des_cbc.h
  18. crypto_des_cbc_unittest.cc
  19. crypto_interface.h
  20. crypto_provider.cc
  21. crypto_provider.h
  22. crypto_provider_unittest.cc
  23. crypto_rot47.cc
  24. crypto_rot47.h
  25. crypto_rot47_unittest.cc
  26. dbus_adaptor.cc
  27. dbus_adaptor.h
  28. dbus_adaptor_unittest.cc
  29. dbus_control.cc
  30. dbus_control.h
  31. dbus_properties.cc
  32. dbus_properties.h
  33. dbus_properties_proxy.cc
  34. dbus_properties_proxy.h
  35. dbus_properties_proxy_interface.h
  36. dbus_properties_unittest.cc
  37. default_profile.cc
  38. default_profile.h
  39. default_profile_unittest.cc
  40. device.cc
  41. device.h
  42. device_dbus_adaptor.cc
  43. device_dbus_adaptor.h
  44. device_info.cc
  45. device_info.h
  46. device_info_unittest.cc
  47. device_stub.h
  48. device_unittest.cc
  49. dhcp_config.cc
  50. dhcp_config.h
  51. dhcp_config_unittest.cc
  52. dhcp_provider.cc
  53. dhcp_provider.h
  54. dhcp_provider_unittest.cc
  55. dhcp_proxy_interface.h
  56. dhcpcd_proxy.cc
  57. dhcpcd_proxy.h
  58. endpoint.cc
  59. endpoint.h
  60. ephemeral_profile.cc
  61. ephemeral_profile.h
  62. error.cc
  63. error.h
  64. error_unittest.cc
  65. ethernet.cc
  66. ethernet.h
  67. ethernet_service.cc
  68. ethernet_service.h
  69. glib.cc
  70. glib.h
  71. glib_io_handler.cc
  72. glib_io_handler.h
  73. HACKING
  74. io_handler.h
  75. ip_address.cc
  76. ip_address.h
  77. ip_address_unittest.cc
  78. ipconfig.cc
  79. ipconfig.h
  80. ipconfig_dbus_adaptor.cc
  81. ipconfig_dbus_adaptor.h
  82. ipconfig_unittest.cc
  83. key_file_store.cc
  84. key_file_store.h
  85. key_file_store_unittest.cc
  86. LICENSE
  87. Makefile
  88. manager.cc
  89. manager.h
  90. manager_dbus_adaptor.cc
  91. manager_dbus_adaptor.h
  92. manager_unittest.cc
  93. mock_adaptors.cc
  94. mock_adaptors.h
  95. mock_control.cc
  96. mock_control.h
  97. mock_dbus_properties_proxy.cc
  98. mock_dbus_properties_proxy.h
  99. mock_device.cc
  100. mock_device.h
  101. mock_device_info.cc
  102. mock_device_info.h
  103. mock_dhcp_config.cc
  104. mock_dhcp_config.h
  105. mock_dhcp_provider.cc
  106. mock_dhcp_provider.h
  107. mock_dhcp_proxy.cc
  108. mock_dhcp_proxy.h
  109. mock_glib.cc
  110. mock_glib.h
  111. mock_ipconfig.cc
  112. mock_ipconfig.h
  113. mock_manager.cc
  114. mock_manager.h
  115. mock_modem_cdma_proxy.cc
  116. mock_modem_cdma_proxy.h
  117. mock_modem_gsm_card_proxy.cc
  118. mock_modem_gsm_card_proxy.h
  119. mock_modem_gsm_network_proxy.cc
  120. mock_modem_gsm_network_proxy.h
  121. mock_modem_manager_proxy.cc
  122. mock_modem_manager_proxy.h
  123. mock_modem_proxy.cc
  124. mock_modem_proxy.h
  125. mock_modem_simple_proxy.cc
  126. mock_modem_simple_proxy.h
  127. mock_profile.cc
  128. mock_profile.h
  129. mock_property_store.cc
  130. mock_property_store.h
  131. mock_resolver.cc
  132. mock_resolver.h
  133. mock_routing_table.cc
  134. mock_routing_table.h
  135. mock_rtnl_handler.cc
  136. mock_rtnl_handler.h
  137. mock_service.cc
  138. mock_service.h
  139. mock_sockets.cc
  140. mock_sockets.h
  141. mock_store.cc
  142. mock_store.h
  143. mock_supplicant_interface_proxy.cc
  144. mock_supplicant_interface_proxy.h
  145. mock_supplicant_process_proxy.cc
  146. mock_supplicant_process_proxy.h
  147. modem.cc
  148. modem.h
  149. modem_cdma_proxy.cc
  150. modem_cdma_proxy.h
  151. modem_cdma_proxy_interface.h
  152. modem_gsm_card_proxy.cc
  153. modem_gsm_card_proxy.h
  154. modem_gsm_card_proxy_interface.h
  155. modem_gsm_network_proxy.cc
  156. modem_gsm_network_proxy.h
  157. modem_gsm_network_proxy_interface.h
  158. modem_info.cc
  159. modem_info.h
  160. modem_info_unittest.cc
  161. modem_manager.cc
  162. modem_manager.h
  163. modem_manager_proxy.cc
  164. modem_manager_proxy.h
  165. modem_manager_proxy_interface.h
  166. modem_manager_unittest.cc
  167. modem_proxy.cc
  168. modem_proxy.h
  169. modem_proxy_interface.h
  170. modem_simple_proxy.cc
  171. modem_simple_proxy.h
  172. modem_simple_proxy_interface.h
  173. modem_unittest.cc
  174. nice_mock_control.cc
  175. nice_mock_control.h
  176. profile.cc
  177. profile.h
  178. profile_dbus_adaptor.cc
  179. profile_dbus_adaptor.h
  180. profile_unittest.cc
  181. property_accessor.h
  182. property_accessor_unittest.cc
  183. property_iterator.h
  184. property_store.cc
  185. property_store.h
  186. property_store_unittest.cc
  187. property_store_unittest.h
  188. proxy_factory.cc
  189. proxy_factory.h
  190. refptr_types.h
  191. resolver.cc
  192. resolver.h
  193. resolver_unittest.cc
  194. routing_table.cc
  195. routing_table.h
  196. routing_table_entry.h
  197. routing_table_unittest.cc
  198. rtnl_handler.cc
  199. rtnl_handler.h
  200. rtnl_handler_unittest.cc
  201. rtnl_listener.cc
  202. rtnl_listener.h
  203. rtnl_listener_unittest.cc
  204. rtnl_message.cc
  205. rtnl_message.h
  206. rtnl_message_unittest.cc
  207. service.cc
  208. service.h
  209. service_dbus_adaptor.cc
  210. service_dbus_adaptor.h
  211. service_unittest.cc
  212. shill.conf
  213. shill_config.cc
  214. shill_config.h
  215. shill_daemon.cc
  216. shill_daemon.h
  217. shill_event.cc
  218. shill_event.h
  219. shill_main.cc
  220. shill_unittest.cc
  221. sockets.cc
  222. sockets.h
  223. store_interface.h
  224. supplicant_interface_proxy.cc
  225. supplicant_interface_proxy.h
  226. supplicant_interface_proxy_interface.h
  227. supplicant_process_proxy.cc
  228. supplicant_process_proxy.h
  229. supplicant_process_proxy_interface.h
  230. testrunner.cc
  231. wifi.cc
  232. wifi.h
  233. wifi_endpoint.cc
  234. wifi_endpoint.h
  235. wifi_service.cc
  236. wifi_service.h
  237. wifi_service_unittest.cc
  238. wifi_unittest.cc