shill: Allow service override of DHCP-derived IP parameters
Create new class StaticIPParameters which encapsulates all of the
property handling for RPC and storage, as well as applying parameters
to an IPConfig::Properties element. When a DHCP request succeeds
these parameters are used to selectively override values gained from
DHCP with those specified on the service.
BUG=chromium-os:23930
TEST=New unit tests -- manual testing is pending
Change-Id: I3b784f897ec6ffe0c78f2efe615d07d8f8924add
Reviewed-on: https://gerrit.chromium.org/gerrit/21448
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/rtnl_handler.cc b/rtnl_handler.cc
index d166b07..af8c8ac 100644
--- a/rtnl_handler.cc
+++ b/rtnl_handler.cc
@@ -281,9 +281,9 @@
RTNLMessage::Mode mode,
int flags,
const IPAddress &local,
- const IPAddress &gateway,
+ const IPAddress &broadcast,
const IPAddress &peer) {
- CHECK(local.family() == gateway.family());
+ CHECK(local.family() == broadcast.family());
CHECK(local.family() == peer.family());
RTNLMessage msg(
@@ -301,8 +301,8 @@
0));
msg.SetAttribute(IFA_LOCAL, local.address());
- if (!gateway.IsDefault()) {
- msg.SetAttribute(IFA_BROADCAST, gateway.address());
+ if (!broadcast.IsDefault()) {
+ msg.SetAttribute(IFA_BROADCAST, broadcast.address());
}
if (!peer.IsDefault()) {
msg.SetAttribute(IFA_ADDRESS, peer.address());