shill: Pass a parameter to dhcp client to request a hostname

This will enable dynamic DNS, or at the very least allow DHCP
requests to be identified and distinguished at the server side.

BUG=chromium-os:23741
TEST=New unit tests monitor hostname arg passed to dhcpcd,
and to assure values are being loaded/saved.  Also double
checked on real system by doing a dbus-send to set manager.HostName
and checked that the name was persisted, and that the next
DHCP server we connected to stored this hostname.
CQ-DEPEND=Ic807a2235e0cdcb32a08f9c2c760a86c3579431c

Change-Id: Ic127b65d8563b15e55549a0f029385d0632eaf6c
Reviewed-on: https://gerrit.chromium.org/gerrit/14045
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
18 files changed
tree: 68a3ebeb26332072bc0d0d63aafae20e524c7b84
  1. dbus_bindings/
  2. accessor_interface.h
  3. adaptor_interfaces.h
  4. async_connection.cc
  5. async_connection.h
  6. async_connection_unittest.cc
  7. byte_string.cc
  8. byte_string.h
  9. byte_string_unittest.cc
  10. callback_list.cc
  11. callback_list.h
  12. callback_list_unittest.cc
  13. cellular.cc
  14. cellular.h
  15. cellular_capability.cc
  16. cellular_capability.h
  17. cellular_capability_cdma.cc
  18. cellular_capability_cdma.h
  19. cellular_capability_cdma_unittest.cc
  20. cellular_capability_gsm.cc
  21. cellular_capability_gsm.h
  22. cellular_capability_gsm_unittest.cc
  23. cellular_service.cc
  24. cellular_service.h
  25. cellular_service_unittest.cc
  26. cellular_unittest.cc
  27. connection.cc
  28. connection.h
  29. connection_unittest.cc
  30. control_interface.h
  31. crypto_des_cbc.cc
  32. crypto_des_cbc.h
  33. crypto_des_cbc_unittest.cc
  34. crypto_interface.h
  35. crypto_provider.cc
  36. crypto_provider.h
  37. crypto_provider_unittest.cc
  38. crypto_rot47.cc
  39. crypto_rot47.h
  40. crypto_rot47_unittest.cc
  41. dbus_adaptor.cc
  42. dbus_adaptor.h
  43. dbus_adaptor_unittest.cc
  44. dbus_control.cc
  45. dbus_control.h
  46. dbus_properties.cc
  47. dbus_properties.h
  48. dbus_properties_proxy.cc
  49. dbus_properties_proxy.h
  50. dbus_properties_proxy_interface.h
  51. dbus_properties_unittest.cc
  52. default_profile.cc
  53. default_profile.h
  54. default_profile_unittest.cc
  55. device.cc
  56. device.h
  57. device_dbus_adaptor.cc
  58. device_dbus_adaptor.h
  59. device_info.cc
  60. device_info.h
  61. device_info_unittest.cc
  62. device_stub.h
  63. device_unittest.cc
  64. dhcp_config.cc
  65. dhcp_config.h
  66. dhcp_config_unittest.cc
  67. dhcp_provider.cc
  68. dhcp_provider.h
  69. dhcp_provider_unittest.cc
  70. dhcp_proxy_interface.h
  71. dhcpcd_proxy.cc
  72. dhcpcd_proxy.h
  73. dns_client.cc
  74. dns_client.h
  75. dns_client_unittest.cc
  76. endpoint.cc
  77. endpoint.h
  78. ephemeral_profile.cc
  79. ephemeral_profile.h
  80. error.cc
  81. error.h
  82. error_unittest.cc
  83. ethernet.cc
  84. ethernet.h
  85. ethernet_service.cc
  86. ethernet_service.h
  87. event_dispatcher.cc
  88. event_dispatcher.h
  89. glib.cc
  90. glib.h
  91. glib_io_input_handler.cc
  92. glib_io_input_handler.h
  93. glib_io_ready_handler.cc
  94. glib_io_ready_handler.h
  95. HACKING
  96. http_proxy.cc
  97. http_proxy.h
  98. http_proxy_unittest.cc
  99. ieee80211.h
  100. io_handler.h
  101. ip_address.cc
  102. ip_address.h
  103. ip_address_unittest.cc
  104. ipconfig.cc
  105. ipconfig.h
  106. ipconfig_dbus_adaptor.cc
  107. ipconfig_dbus_adaptor.h
  108. ipconfig_unittest.cc
  109. key_file_store.cc
  110. key_file_store.h
  111. key_file_store_unittest.cc
  112. key_value_store.cc
  113. key_value_store.h
  114. LICENSE
  115. Makefile
  116. manager.cc
  117. manager.h
  118. manager_dbus_adaptor.cc
  119. manager_dbus_adaptor.h
  120. manager_unittest.cc
  121. metrics.cc
  122. metrics.h
  123. metrics_unittest.cc
  124. mock_adaptors.cc
  125. mock_adaptors.h
  126. mock_ares.cc
  127. mock_ares.h
  128. mock_async_connection.cc
  129. mock_async_connection.h
  130. mock_callback.cc
  131. mock_callback.h
  132. mock_connection.cc
  133. mock_connection.h
  134. mock_control.cc
  135. mock_control.h
  136. mock_dbus_properties_proxy.cc
  137. mock_dbus_properties_proxy.h
  138. mock_device.cc
  139. mock_device.h
  140. mock_device_info.cc
  141. mock_device_info.h
  142. mock_dhcp_config.cc
  143. mock_dhcp_config.h
  144. mock_dhcp_provider.cc
  145. mock_dhcp_provider.h
  146. mock_dhcp_proxy.cc
  147. mock_dhcp_proxy.h
  148. mock_dns_client.cc
  149. mock_dns_client.h
  150. mock_event_dispatcher.cc
  151. mock_event_dispatcher.h
  152. mock_glib.cc
  153. mock_glib.h
  154. mock_ipconfig.cc
  155. mock_ipconfig.h
  156. mock_manager.cc
  157. mock_manager.h
  158. mock_metrics.cc
  159. mock_metrics.h
  160. mock_modem_cdma_proxy.cc
  161. mock_modem_cdma_proxy.h
  162. mock_modem_gsm_card_proxy.cc
  163. mock_modem_gsm_card_proxy.h
  164. mock_modem_gsm_network_proxy.cc
  165. mock_modem_gsm_network_proxy.h
  166. mock_modem_manager_proxy.cc
  167. mock_modem_manager_proxy.h
  168. mock_modem_proxy.cc
  169. mock_modem_proxy.h
  170. mock_modem_simple_proxy.cc
  171. mock_modem_simple_proxy.h
  172. mock_power_manager_proxy.cc
  173. mock_power_manager_proxy.h
  174. mock_profile.cc
  175. mock_profile.h
  176. mock_property_store.cc
  177. mock_property_store.h
  178. mock_resolver.cc
  179. mock_resolver.h
  180. mock_routing_table.cc
  181. mock_routing_table.h
  182. mock_rtnl_handler.cc
  183. mock_rtnl_handler.h
  184. mock_service.cc
  185. mock_service.h
  186. mock_sockets.cc
  187. mock_sockets.h
  188. mock_store.cc
  189. mock_store.h
  190. mock_supplicant_interface_proxy.cc
  191. mock_supplicant_interface_proxy.h
  192. mock_supplicant_process_proxy.cc
  193. mock_supplicant_process_proxy.h
  194. mock_time.cc
  195. mock_time.h
  196. mock_wifi.cc
  197. mock_wifi.h
  198. mock_wifi_service.cc
  199. mock_wifi_service.h
  200. modem.cc
  201. modem.h
  202. modem_cdma_proxy.cc
  203. modem_cdma_proxy.h
  204. modem_cdma_proxy_interface.h
  205. modem_gsm_card_proxy.cc
  206. modem_gsm_card_proxy.h
  207. modem_gsm_card_proxy_interface.h
  208. modem_gsm_network_proxy.cc
  209. modem_gsm_network_proxy.h
  210. modem_gsm_network_proxy_interface.h
  211. modem_info.cc
  212. modem_info.h
  213. modem_info_unittest.cc
  214. modem_manager.cc
  215. modem_manager.h
  216. modem_manager_proxy.cc
  217. modem_manager_proxy.h
  218. modem_manager_proxy_interface.h
  219. modem_manager_unittest.cc
  220. modem_proxy.cc
  221. modem_proxy.h
  222. modem_proxy_interface.h
  223. modem_simple_proxy.cc
  224. modem_simple_proxy.h
  225. modem_simple_proxy_interface.h
  226. modem_unittest.cc
  227. nice_mock_control.cc
  228. nice_mock_control.h
  229. power_manager_proxy.cc
  230. power_manager_proxy.h
  231. power_manager_proxy_interface.h
  232. profile.cc
  233. profile.h
  234. profile_dbus_adaptor.cc
  235. profile_dbus_adaptor.h
  236. profile_unittest.cc
  237. property_accessor.h
  238. property_accessor_unittest.cc
  239. property_iterator.h
  240. property_store.cc
  241. property_store.h
  242. property_store_unittest.cc
  243. property_store_unittest.h
  244. provider_db_unittest.bfd
  245. proxy_factory.cc
  246. proxy_factory.h
  247. refptr_types.h
  248. resolver.cc
  249. resolver.h
  250. resolver_unittest.cc
  251. routing_table.cc
  252. routing_table.h
  253. routing_table_entry.h
  254. routing_table_unittest.cc
  255. rtnl_handler.cc
  256. rtnl_handler.h
  257. rtnl_handler_unittest.cc
  258. rtnl_listener.cc
  259. rtnl_listener.h
  260. rtnl_listener_unittest.cc
  261. rtnl_message.cc
  262. rtnl_message.h
  263. rtnl_message_unittest.cc
  264. service.cc
  265. service.h
  266. service_dbus_adaptor.cc
  267. service_dbus_adaptor.h
  268. service_sorter.h
  269. service_under_test.cc
  270. service_under_test.h
  271. service_unittest.cc
  272. shill.conf
  273. shill_ares.cc
  274. shill_ares.h
  275. shill_config.cc
  276. shill_config.h
  277. shill_daemon.cc
  278. shill_daemon.h
  279. shill_main.cc
  280. shill_test_config.cc
  281. shill_test_config.h
  282. shill_time.cc
  283. shill_time.h
  284. shill_unittest.cc
  285. sockets.cc
  286. sockets.h
  287. store_interface.h
  288. supplicant_interface_proxy.cc
  289. supplicant_interface_proxy.h
  290. supplicant_interface_proxy_interface.h
  291. supplicant_process_proxy.cc
  292. supplicant_process_proxy.h
  293. supplicant_process_proxy_interface.h
  294. technology.cc
  295. technology.h
  296. TESTING
  297. testrunner.cc
  298. wifi.cc
  299. wifi.h
  300. wifi_endpoint.cc
  301. wifi_endpoint.h
  302. wifi_endpoint_unittest.cc
  303. wifi_service.cc
  304. wifi_service.h
  305. wifi_service_unittest.cc
  306. wifi_unittest.cc
  307. wpa_supplicant.cc
  308. wpa_supplicant.h