shill: DHCPConfig: Optionally use minimal config
Add another argument to the DHCPConfig constructor to specify
whether a cut-down minimal set of options should be requested
from the DHCP server. This adds a command line argument to
the startup of the DHCP client. Propagate this upwards to the
Device, and add a placeholder Device::ShouldUseMinimalConfig()
method which will decide whether to enable this feature in the
DHCPConfig in a later CL.
A few ancillary changes went into this CL:
- The DHCPProvider needed another argument to CreateConfig
since it constructs DHCPConfig objects.
- Added a unit test for the Device::ShouldUseArpGateway()
superclass function next to Device::ShouldUseMinimalConfig()
test.
- Fixed the DHCPConfigTest::Start* tests to use the IsDHCPCDArgs
matcher. For some reason that matcher sat unused and
atrophied. Added a new test that exercises the minimal config
flag.
BUG=chromium:297607
TEST=Unit tests. Run network_DhcpNegotiationSuccess autotest.
Change-Id: If0dcaf328ca6dfac7127a6badd409a4138c95760
Reviewed-on: https://chromium-review.googlesource.com/174531
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/dhcp_provider.cc b/dhcp_provider.cc
index 10ddd64..7a9cf96 100644
--- a/dhcp_provider.cc
+++ b/dhcp_provider.cc
@@ -55,7 +55,8 @@
DHCPConfigRefPtr DHCPProvider::CreateConfig(const string &device_name,
const string &host_name,
const string &lease_file_suffix,
- bool arp_gateway) {
+ bool arp_gateway,
+ bool minimal_config) {
SLOG(DHCP, 2) << __func__ << " device: " << device_name;
return new DHCPConfig(control_interface_,
dispatcher_,
@@ -64,6 +65,7 @@
host_name,
lease_file_suffix,
arp_gateway,
+ minimal_config,
glib_);
}